From 4055bb233e156fd77891fe8721c2b6982b850c11 Mon Sep 17 00:00:00 2001 From: iamazy Date: Mon, 24 Aug 2026 22:16:28 +0800 Subject: [PATCH 1/6] feat: add footbar theme toggle --- assets/icons/moon.svg | 1 + assets/icons/sun.svg | 1 + locales/en.yml | 1 + locales/zh-CN.yml | 1 + termua/src/footbar/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 38 insertions(+) create mode 100644 assets/icons/moon.svg create mode 100644 assets/icons/sun.svg diff --git a/assets/icons/moon.svg b/assets/icons/moon.svg new file mode 100644 index 0000000..07b397d --- /dev/null +++ b/assets/icons/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/sun.svg b/assets/icons/sun.svg new file mode 100644 index 0000000..65c97c7 --- /dev/null +++ b/assets/icons/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/locales/en.yml b/locales/en.yml index b6c1cfd..ce3db39 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -157,6 +157,7 @@ Footbar: MultiExecute: "Multi Execute" Messages: "Messages" Assistant: "Assistant" + ThemeToggle: "Toggle dark/light theme" Lock: "Lock" LockUnsupported: "Lock (unsupported)" LockDisabled: "Lock (disabled)" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 12f7844..45a53e9 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -157,6 +157,7 @@ Footbar: MultiExecute: "批量执行" Messages: "通知" Assistant: "助手" + ThemeToggle: "切换深色/浅色主题" Lock: "锁屏" LockUnsupported: "锁屏(不支持)" LockDisabled: "锁屏(已禁用)" diff --git a/termua/src/footbar/mod.rs b/termua/src/footbar/mod.rs index 96194f8..7a98d84 100644 --- a/termua/src/footbar/mod.rs +++ b/termua/src/footbar/mod.rs @@ -246,6 +246,14 @@ impl FootbarView { } } + fn theme_toggle_icon(is_dark: bool) -> TermuaIcon { + if is_dark { + TermuaIcon::Sun + } else { + TermuaIcon::Moon + } + } + fn set_transfers_open(&mut self, open: bool, cx: &mut Context) { self.transfers_open = open; cx.notify(); @@ -281,6 +289,7 @@ impl FootbarView { assistant_enabled: bool, assistant_selected: bool, backend: Option, + is_dark: bool, ) -> gpui::AnyElement { h_flex() .items_center() @@ -288,6 +297,23 @@ impl FootbarView { .when_some(backend, |this, backend| { this.child(Self::render_backend_indicator(backend)) }) + .child( + Button::new("termua-footbar-theme-toggle-button") + .xsmall() + .compact() + .ghost() + .icon(Icon::default().path(Self::theme_toggle_icon(is_dark))) + .tooltip(t!("Footbar.Tooltip.ThemeToggle").to_string()) + .debug_selector(|| "termua-footbar-theme-toggle".to_string()) + .on_click(|_, window, cx| { + let next = if cx.theme().mode.is_dark() { + crate::settings::ThemeMode::Light + } else { + crate::settings::ThemeMode::Dark + }; + crate::settings::set_theme_mode(next, Some(window), cx); + }), + ) .child( Button::new("termua-footbar-issues-link") .xsmall() @@ -440,6 +466,7 @@ impl Render for FootbarView { let web_share_count = cx.global::().count(); let backend = cx.global::().backend(); + let is_dark = cx.theme().mode.is_dark(); let left_controls = self.render_controls_left(sessions_visible); let right_controls = self.render_controls_right( enabled, @@ -450,6 +477,7 @@ impl Render for FootbarView { assistant_enabled, assistant_selected, backend, + is_dark, ); div() @@ -535,6 +563,12 @@ mod tests { assert_eq!(FootbarView::multi_exec_icon_path(true), TermuaIcon::Dice4); } + #[test] + fn footbar_theme_toggle_icon_matches_current_mode() { + assert_eq!(FootbarView::theme_toggle_icon(true), TermuaIcon::Sun); + assert_eq!(FootbarView::theme_toggle_icon(false), TermuaIcon::Moon); + } + #[gpui::test] fn web_share_indicator_counts_active_terminals(cx: &mut gpui::TestAppContext) { let indicator = crate::window::main_window::WebShareIndicator::default(); From 195df18c1a46d1eb107e4190f0b50f1f95260d2c Mon Sep 17 00:00:00 2001 From: iamazy Date: Wed, 23 Sep 2026 19:30:24 +0800 Subject: [PATCH 2/6] test: remove macos skipped tag --- crates/gpui_term/src/terminal.rs | 1 - crates/gpui_term/src/view/mod.rs | 9 -------- crates/gpui_term/src/view/scrollbar.rs | 1 - crates/menubar/src/titlebar.rs | 15 +++++++++--- termua/src/menu.rs | 1 - termua/src/panel/assistant_panel.rs | 9 -------- termua/src/panel/message_panel.rs | 1 - termua/src/panel/right_sidebar.rs | 1 - termua/src/panel/sessions_sidebar/tests.rs | 6 ----- .../window/main_window/actions/terminal.rs | 2 -- termua/src/window/main_window/tests.rs | 19 --------------- termua/src/window/new_session/tests.rs | 3 --- termua/src/window/settings/tests.rs | 23 ------------------- 13 files changed, 12 insertions(+), 79 deletions(-) diff --git a/crates/gpui_term/src/terminal.rs b/crates/gpui_term/src/terminal.rs index 30d7c99..68f103a 100644 --- a/crates/gpui_term/src/terminal.rs +++ b/crates/gpui_term/src/terminal.rs @@ -1893,7 +1893,6 @@ mod content_update_event_tests { use super::*; - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn sync_emits_content_updated_after_backend_snapshot_is_ready(cx: &mut gpui::TestAppContext) { cx.update(crate::init); diff --git a/crates/gpui_term/src/view/mod.rs b/crates/gpui_term/src/view/mod.rs index e459b5a..b12fdaf 100644 --- a/crates/gpui_term/src/view/mod.rs +++ b/crates/gpui_term/src/view/mod.rs @@ -1165,7 +1165,6 @@ mod suggestion_selection_tests { assert_eq!(state.selected, None); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn enter_does_not_accept_suggestion_when_unselected(cx: &mut gpui::TestAppContext) { use std::cell::RefCell; @@ -1239,7 +1238,6 @@ mod suggestion_selection_tests { ); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn accept_suggestion_at_index_works_without_selection(cx: &mut gpui::TestAppContext) { use std::cell::RefCell; @@ -1310,7 +1308,6 @@ mod suggestion_selection_tests { assert!(!still_open, "accept should close suggestions"); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn focus_out_closes_suggestions(cx: &mut gpui::TestAppContext) { use std::cell::RefCell; @@ -1563,7 +1560,6 @@ mod suggestion_acceptance_shell_agnostic_tests { content } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn accept_selected_suggestion_allows_shell_prompt_decorations_after_cursor( cx: &mut gpui::TestAppContext, @@ -1624,7 +1620,6 @@ mod suggestion_acceptance_shell_agnostic_tests { assert!(!still_open, "accept should close suggestions"); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn accept_selected_suggestion_falls_back_when_prompt_prefix_changes( cx: &mut gpui::TestAppContext, @@ -1692,7 +1687,6 @@ mod prompt_context_tests { use super::{scrollbar::scrollbar_preview_tests::PreviewBackend, *}; - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn prompt_context_snapshots_content_and_cursor_line_id(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -1740,7 +1734,6 @@ mod ime_state_tests { use super::{scrollbar::scrollbar_preview_tests::PreviewBackend, *}; - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn marked_text_range_defaults_to_utf16_length_when_platform_does_not_supply_range( cx: &mut gpui::TestAppContext, @@ -1775,7 +1768,6 @@ mod ime_state_tests { }); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn empty_marked_text_clears_ime_state(cx: &mut gpui::TestAppContext) { cx.update(crate::init); @@ -1993,7 +1985,6 @@ mod snippet_placeholder_key_down_tests { } } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn typing_replaces_selected_snippet_placeholder(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; diff --git a/crates/gpui_term/src/view/scrollbar.rs b/crates/gpui_term/src/view/scrollbar.rs index 97d74f9..8ac5ff9 100644 --- a/crates/gpui_term/src/view/scrollbar.rs +++ b/crates/gpui_term/src/view/scrollbar.rs @@ -671,7 +671,6 @@ pub(super) mod scrollbar_preview_tests { } } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn scrollbar_preview_is_not_obscured_by_footer_bar(cx: &mut gpui::TestAppContext) { cx.update(|app| { diff --git a/crates/menubar/src/titlebar.rs b/crates/menubar/src/titlebar.rs index 0b6a223..43aea07 100644 --- a/crates/menubar/src/titlebar.rs +++ b/crates/menubar/src/titlebar.rs @@ -69,10 +69,12 @@ mod tests { use std::sync::Mutex; use gpui::{ - AppContext as _, AvailableSpace, Context, InteractiveElement as _, IntoElement, Modifiers, - MouseButton, ParentElement as _, Render, Styled as _, Window, point, px, size, + AppContext as _, AvailableSpace, Context, InteractiveElement as _, IntoElement, + ParentElement as _, Render, Styled as _, Window, point, px, size, }; + #[cfg(not(target_os = "macos"))] use gpui_base::TextSelection; + #[cfg(not(target_os = "macos"))] use gpui_component::{ Root, text::{TextView, TextViewState}, @@ -94,10 +96,12 @@ mod tests { } } + #[cfg(not(target_os = "macos"))] struct SelectableContentTestView { text: gpui::Entity, } + #[cfg(not(target_os = "macos"))] impl SelectableContentTestView { fn new(cx: &mut Context) -> Self { Self { @@ -106,6 +110,7 @@ mod tests { } } + #[cfg(not(target_os = "macos"))] impl Render for SelectableContentTestView { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { gpui::div() @@ -163,9 +168,13 @@ mod tests { } } - #[cfg_attr(target_os = "macos", ignore)] + // The in-window menubar's selection-suppression handler is only installed on + // Linux/Windows; macOS uses the native menubar instead. + #[cfg(not(target_os = "macos"))] #[gpui::test] fn dragging_titlebar_does_not_start_text_selection(cx: &mut gpui::TestAppContext) { + use gpui::{Modifiers, MouseButton}; + let _env_guard = MACOS_ENV_LOCK.lock().unwrap(); cx.update(|app| { diff --git a/termua/src/menu.rs b/termua/src/menu.rs index cf5bc5a..246dc7e 100644 --- a/termua/src/menu.rs +++ b/termua/src/menu.rs @@ -823,7 +823,6 @@ mod tests { }); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn open_settings_opens_a_single_settings_window(cx: &mut gpui::TestAppContext) { let _guard = crate::locale::lock(); diff --git a/termua/src/panel/assistant_panel.rs b/termua/src/panel/assistant_panel.rs index c71c9be..907c505 100644 --- a/termua/src/panel/assistant_panel.rs +++ b/termua/src/panel/assistant_panel.rs @@ -1301,7 +1301,6 @@ mod tests { ); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_message_text_is_rendered_by_textview_and_send_scrolls_to_bottom( cx: &mut gpui::TestAppContext, @@ -1392,7 +1391,6 @@ mod tests { ); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_prompt_renders_options_and_send_buttons(cx: &mut gpui::TestAppContext) { let _locale_guard = cx.update(|app| init_test_app(app)); @@ -1423,7 +1421,6 @@ mod tests { .expect("expected assistant header icon to render"); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_in_flight_card_renders_bot_icon(cx: &mut gpui::TestAppContext) { let _locale_guard = cx.update(|app| init_test_app(app)); @@ -1452,7 +1449,6 @@ mod tests { .expect("expected assistant in-flight card to render a bot icon"); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_message_delete_button_is_rightmost_and_above_body(cx: &mut gpui::TestAppContext) { let _locale_guard = cx.update(|app| init_test_app(app)); @@ -1513,7 +1509,6 @@ mod tests { ); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_message_delete_button_removes_only_that_message(cx: &mut gpui::TestAppContext) { let _locale_guard = cx.update(|app| init_test_app(app)); @@ -1557,7 +1552,6 @@ mod tests { assert_eq!(remaining, vec!["b".to_string()]); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_reply_with_multiple_commands_renders_run_button_per_command( cx: &mut gpui::TestAppContext, @@ -1596,7 +1590,6 @@ mod tests { // Intentionally no assistant "tool" UI in the panel. - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_user_messages_render_rerun_button_after_assistant_reply( cx: &mut gpui::TestAppContext, @@ -1630,7 +1623,6 @@ mod tests { .expect("expected user messages to render a rerun button"); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_user_messages_hide_rerun_button_before_assistant_reply( cx: &mut gpui::TestAppContext, @@ -1666,7 +1658,6 @@ mod tests { ); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_only_hides_rerun_for_last_user_message_while_in_flight( cx: &mut gpui::TestAppContext, diff --git a/termua/src/panel/message_panel.rs b/termua/src/panel/message_panel.rs index 21c4d69..2058283 100644 --- a/termua/src/panel/message_panel.rs +++ b/termua/src/panel/message_panel.rs @@ -201,7 +201,6 @@ mod tests { use super::*; - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn notifications_panel_renders_header_icon(cx: &mut gpui::TestAppContext) { cx.update(|app| { diff --git a/termua/src/panel/right_sidebar.rs b/termua/src/panel/right_sidebar.rs index c43d39a..683ea46 100644 --- a/termua/src/panel/right_sidebar.rs +++ b/termua/src/panel/right_sidebar.rs @@ -156,7 +156,6 @@ mod tests { locale_guard } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn right_sidebar_does_not_render_outer_tab_title_or_tab_bar(cx: &mut gpui::TestAppContext) { let _locale_guard = cx.update(|app| { diff --git a/termua/src/panel/sessions_sidebar/tests.rs b/termua/src/panel/sessions_sidebar/tests.rs index dcc28c1..a70c8aa 100644 --- a/termua/src/panel/sessions_sidebar/tests.rs +++ b/termua/src/panel/sessions_sidebar/tests.rs @@ -544,7 +544,6 @@ fn ssh_sessions_show_connecting_and_block_repeat_double_click(cx: &mut gpui::Tes ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn sessions_can_be_deleted_via_right_click_menu(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -768,7 +767,6 @@ fn sessions_context_menu_includes_edit_item(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn powershell_local_session_uses_shell_specific_icon(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -818,7 +816,6 @@ fn powershell_local_session_uses_shell_specific_icon(cx: &mut gpui::TestAppConte .expect("expected PowerShell session icon to render"); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn blank_area_right_click_shows_new_session_menu_item(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -865,7 +862,6 @@ fn blank_area_right_click_shows_new_session_menu_item(cx: &mut gpui::TestAppCont ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn folder_right_click_shows_new_session_menu_item(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -923,7 +919,6 @@ fn folder_right_click_shows_new_session_menu_item(cx: &mut gpui::TestAppContext) ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn sidebar_shows_load_error_when_disk_sessions_cannot_be_parsed(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -968,7 +963,6 @@ fn sidebar_shows_load_error_when_disk_sessions_cannot_be_parsed(cx: &mut gpui::T .expect("expected a visible load error when disk sessions cannot be parsed"); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn session_labels_do_not_wrap_when_sidebar_is_narrow(cx: &mut gpui::TestAppContext) { cx.update(|app| { diff --git a/termua/src/window/main_window/actions/terminal.rs b/termua/src/window/main_window/actions/terminal.rs index 0e707a9..53b7f81 100644 --- a/termua/src/window/main_window/actions/terminal.rs +++ b/termua/src/window/main_window/actions/terminal.rs @@ -995,7 +995,6 @@ mod tests { (termua, window_cx) } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn saved_serial_session_open_failure_includes_edit_hint(cx: &mut gpui::TestAppContext) { init_test_app(cx); @@ -1037,7 +1036,6 @@ mod tests { }); } - #[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn ad_hoc_serial_open_failure_omits_saved_session_edit_hint(cx: &mut gpui::TestAppContext) { init_test_app(cx); diff --git a/termua/src/window/main_window/tests.rs b/termua/src/window/main_window/tests.rs index 7f07af0..64e7297 100644 --- a/termua/src/window/main_window/tests.rs +++ b/termua/src/window/main_window/tests.rs @@ -1030,7 +1030,6 @@ fn web_share_idle_timeout_uses_configured_minutes() { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn ssh_host_key_mismatch_dialog_renders_label_prefixes(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1113,7 +1112,6 @@ fn ssh_host_key_mismatch_dialog_renders_label_prefixes(cx: &mut gpui::TestAppCon } } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn web_control_request_dialog_renders_source_and_security_notice(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1184,7 +1182,6 @@ fn web_control_request_dialog_renders_source_and_security_notice(cx: &mut gpui:: ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn request_quit_without_open_tabs_does_not_open_confirmation_dialog(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1232,7 +1229,6 @@ fn request_quit_without_open_tabs_does_not_open_confirmation_dialog(cx: &mut gpu ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn request_quit_with_open_tabs_requires_confirmation(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1349,7 +1345,6 @@ fn request_quit_with_open_tabs_requires_confirmation(cx: &mut gpui::TestAppConte ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn menu_quit_with_open_tabs_opens_confirmation_dialog_without_panicking( cx: &mut gpui::TestAppContext, @@ -1674,7 +1669,6 @@ fn recorder_terminal_view_enables_context_menu(cx: &mut gpui::TestAppContext) { } #[gpui::test] -#[cfg_attr(target_os = "macos", ignore)] fn recorder_terminal_view_supports_copy_and_select_all_shortcuts(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1864,7 +1858,6 @@ fn main_window_renders_lock_overlay_when_locked(cx: &mut gpui::TestAppContext) { assert!(window.debug_bounds("termua-lock-password-input").is_some()); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn closing_terminal_tab_stops_its_web_share(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -1972,7 +1965,6 @@ fn closing_terminal_tab_stops_its_web_share(cx: &mut gpui::TestAppContext) { }); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn dock_layout_change_cleans_share_without_a_terminal_tab(cx: &mut gpui::TestAppContext) { cx.update(|app| { @@ -2061,7 +2053,6 @@ fn web_line_numbers_follow_current_terminal_setting(cx: &mut gpui::TestAppContex }); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn close_terminal_event_closes_local_terminal_tab(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2207,7 +2198,6 @@ fn close_terminal_event_closes_local_terminal_tab(cx: &mut gpui::TestAppContext) }); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn exited_ssh_terminal_closes_on_second_ctrl_d(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2353,7 +2343,6 @@ fn exited_ssh_terminal_closes_on_second_ctrl_d(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn close_terminal_event_keeps_recorder_tab_open(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2466,7 +2455,6 @@ fn close_terminal_event_keeps_recorder_tab_open(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn exited_recorder_tab_closes_on_ctrl_d(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2583,7 +2571,6 @@ fn exited_recorder_tab_closes_on_ctrl_d(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn active_ssh_terminal_does_not_close_on_first_ctrl_d(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2772,7 +2759,6 @@ fn sftp_events_are_recorded_in_message_center(cx: &mut gpui::TestAppContext) { assert!(recorded, "expected SFTP message to be recorded"); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_toast_events_are_recorded_in_message_center(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -2977,7 +2963,6 @@ fn sftp_upload_per_file_progress_creates_multiple_transfer_tasks(cx: &mut gpui:: ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn main_window_pressing_enter_unlocks(cx: &mut gpui::TestAppContext) { use std::sync::Arc; @@ -3049,7 +3034,6 @@ fn main_window_pressing_enter_unlocks(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn main_window_incorrect_password_clears_lock_input(cx: &mut gpui::TestAppContext) { use std::sync::Arc; @@ -3134,7 +3118,6 @@ fn main_window_incorrect_password_clears_lock_input(cx: &mut gpui::TestAppContex ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn main_window_focuses_lock_input_on_lock(cx: &mut gpui::TestAppContext) { use gpui_component::WindowExt; @@ -3176,7 +3159,6 @@ fn main_window_focuses_lock_input_on_lock(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn main_window_lock_password_input_accepts_text(cx: &mut gpui::TestAppContext) { use gpui_component::WindowExt; @@ -3918,7 +3900,6 @@ fn dock_tab_move_buttons_render_when_tabs_overflow(cx: &mut gpui::TestAppContext ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn ssh_sessions_with_missing_password_show_a_notification(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; diff --git a/termua/src/window/new_session/tests.rs b/termua/src/window/new_session/tests.rs index b11280d..c4ae40a 100644 --- a/termua/src/window/new_session/tests.rs +++ b/termua/src/window/new_session/tests.rs @@ -625,7 +625,6 @@ fn new_session_ssh_renders_password_input(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn new_session_window_is_wrapped_in_gpui_component_root(cx: &mut gpui::TestAppContext) { let handle = { @@ -1998,7 +1997,6 @@ fn new_local_connect_persists_edited_and_deleted_terminal_env_rows(cx: &mut gpui assert_eq!(env_value("TERMUA_SHELL"), Some(expected_shell.as_str())); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn new_local_connect_with_empty_label_and_group_enqueues_sidebar_reload_after_persist( cx: &mut gpui::TestAppContext, @@ -2101,7 +2099,6 @@ fn new_local_connect_with_empty_label_and_group_enqueues_sidebar_reload_after_pe assert_eq!(sessions[0].label, expected_label); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn new_local_persist_error_is_shown_in_sessions_sidebar(cx: &mut gpui::TestAppContext) { cx.update(|app| { diff --git a/termua/src/window/settings/tests.rs b/termua/src/window/settings/tests.rs index 23b2bdb..65449fb 100644 --- a/termua/src/window/settings/tests.rs +++ b/termua/src/window/settings/tests.rs @@ -148,7 +148,6 @@ fn assistant_settings_are_present_in_settings_meta_and_sidebar() { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_model_dropdown_does_not_render_inline_fetch_error_below_control( cx: &mut gpui::TestAppContext, @@ -207,7 +206,6 @@ fn assistant_model_dropdown_does_not_render_inline_fetch_error_below_control( ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn assistant_model_dropdown_filters_options_from_typed_query(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -443,7 +441,6 @@ fn terminal_sharing_page_renders_port_input(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn web_sharing_port_is_saved_only_by_its_save_button(cx: &mut gpui::TestAppContext) { use std::{cell::RefCell, rc::Rc}; @@ -600,7 +597,6 @@ fn terminal_font_fallback_setting_is_not_present_in_settings_meta_or_supported() ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn settings_window_is_wrapped_in_gpui_component_root(cx: &mut gpui::TestAppContext) { let handle = { @@ -618,7 +614,6 @@ fn settings_window_is_wrapped_in_gpui_component_root(cx: &mut gpui::TestAppConte .unwrap(); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn settings_window_lock_password_input_accepts_text(cx: &mut gpui::TestAppContext) { use gpui_component::WindowExt; @@ -686,7 +681,6 @@ fn settings_window_lock_password_input_accepts_text(cx: &mut gpui::TestAppContex assert_eq!(value, "pw"); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn settings_window_incorrect_password_clears_lock_input(cx: &mut gpui::TestAppContext) { use std::sync::Arc; @@ -900,7 +894,6 @@ fn assistant_page_renders_zeroclaw_controls(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn disabling_assistant_shows_zeroclaw_shutdown_dialog_buttons(cx: &mut gpui::TestAppContext) { let tmp_dir = std::env::temp_dir().join(format!( @@ -1098,7 +1091,6 @@ fn recording_page_renders_playback_speed_as_select(cx: &mut gpui::TestAppContext ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn clicking_new_theme_button_opens_theme_editor_sheet(cx: &mut gpui::TestAppContext) { let _guard = override_settings_page("theme-editor-sheet", "nav.page.appearance.theme"); @@ -1119,7 +1111,6 @@ fn clicking_new_theme_button_opens_theme_editor_sheet(cx: &mut gpui::TestAppCont ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_sheet_lists_background_color(cx: &mut gpui::TestAppContext) { let _guard = @@ -1142,7 +1133,6 @@ fn theme_editor_sheet_lists_background_color(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_preview_restores_theme_on_close(cx: &mut gpui::TestAppContext) { use gpui_component::Colorize as _; @@ -1204,7 +1194,6 @@ fn theme_editor_preview_restores_theme_on_close(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_sheet_lists_muted_color(cx: &mut gpui::TestAppContext) { let _guard = override_settings_page("theme-editor-sheet-muted", "nav.page.appearance.theme"); @@ -1225,7 +1214,6 @@ fn theme_editor_sheet_lists_muted_color(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_preserves_previous_changes_across_fields(cx: &mut gpui::TestAppContext) { use gpui_component::Colorize as _; @@ -1333,7 +1321,6 @@ fn theme_editor_preserves_previous_changes_across_fields(cx: &mut gpui::TestAppC ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_renders_color_swatch_for_background(cx: &mut gpui::TestAppContext) { // Point settings.json to a temp directory so this test is hermetic. @@ -1392,7 +1379,6 @@ fn theme_editor_renders_color_swatch_for_background(cx: &mut gpui::TestAppContex ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_long_color_labels_do_not_wrap(cx: &mut gpui::TestAppContext) { use std::rc::Rc; @@ -1461,7 +1447,6 @@ fn theme_editor_long_color_labels_do_not_wrap(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_footer_buttons_are_right_aligned(cx: &mut gpui::TestAppContext) { // Point settings.json to a temp directory so this test is hermetic. @@ -1535,7 +1520,6 @@ fn theme_editor_footer_buttons_are_right_aligned(cx: &mut gpui::TestAppContext) ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_sheet_keeps_settings_window_draggable(cx: &mut gpui::TestAppContext) { // Point settings.json to a temp directory so this test is hermetic. @@ -1594,7 +1578,6 @@ fn theme_editor_sheet_keeps_settings_window_draggable(cx: &mut gpui::TestAppCont ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_mode_switch_toggles_preview_mode(cx: &mut gpui::TestAppContext) { // Point settings.json to a temp directory so this test is hermetic. @@ -1668,7 +1651,6 @@ fn theme_editor_mode_switch_toggles_preview_mode(cx: &mut gpui::TestAppContext) cx.run_until_parked(); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn theme_editor_save_writes_a_theme_file(cx: &mut gpui::TestAppContext) { // Point settings.json to a temp directory so this test is hermetic. @@ -2123,7 +2105,6 @@ fn terminal_font_page_renders_ligatures_switch(cx: &mut gpui::TestAppContext) { ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_font_family_dropdown_renders_font_preview_options(cx: &mut gpui::TestAppContext) { let _guard = override_settings_page("terminal-font-family-dropdown", "nav.page.terminal.font"); @@ -2146,7 +2127,6 @@ fn terminal_font_family_dropdown_renders_font_preview_options(cx: &mut gpui::Tes ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_keybinding_field_accepts_delete_key_as_binding(cx: &mut gpui::TestAppContext) { let tmp_dir = std::env::temp_dir().join(format!( @@ -2219,7 +2199,6 @@ fn terminal_keybinding_field_accepts_delete_key_as_binding(cx: &mut gpui::TestAp }); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_keybindings_page_uses_compact_two_column_rows(cx: &mut gpui::TestAppContext) { let _guard = override_settings_page( @@ -2289,7 +2268,6 @@ fn terminal_keybindings_page_uses_compact_two_column_rows(cx: &mut gpui::TestApp ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_keybindings_tooltip_stays_hidden_when_hovering_title_cell_padding( cx: &mut gpui::TestAppContext, @@ -2324,7 +2302,6 @@ fn terminal_keybindings_tooltip_stays_hidden_when_hovering_title_cell_padding( ); } -#[cfg_attr(target_os = "macos", ignore)] #[gpui::test] fn terminal_font_family_dropdown_filters_options_from_typed_query(cx: &mut gpui::TestAppContext) { let _guard = override_settings_page("terminal-font-family-filter", "nav.page.terminal.font"); From 098994f6bbffb7b872d8b17a7b9e38cc04df2c99 Mon Sep 17 00:00:00 2001 From: iamazy Date: Wed, 23 Sep 2026 19:51:13 +0800 Subject: [PATCH 3/6] chore: upgrade gpui --- Cargo.lock | 1229 +++++++++++++++------------------ Cargo.toml | 16 +- crates/gpui_dock/src/tiles.rs | 13 +- 3 files changed, 581 insertions(+), 677 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c767ccf..eecaf08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,38 +24,18 @@ dependencies = [ [[package]] name = "accesskit_atspi_common" -version = "0.18.1" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8c61bee90b42a772d39d06a740207dc71a4e780004ace1db8d99fb1baaa954" +checksum = "023da0e5097f46df7092d5280b02efb9bbf8d93298daeced42652463e357d636" dependencies = [ "accesskit", - "accesskit_consumer 0.36.0", + "accesskit_consumer", "atspi-common", "phf 0.13.1", "serde", "zvariant", ] -[[package]] -name = "accesskit_consumer" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e0d7e25d06f4dc21d1774d67146e9e80d6789216cbd4d1e88185b0095dba60" -dependencies = [ - "accesskit", - "hashbrown 0.16.1", -] - -[[package]] -name = "accesskit_consumer" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950720ce064757a1b629caad3a408e8d2c63bb01f29b8a3ff8daa331053ffeb" -dependencies = [ - "accesskit", - "hashbrown 0.16.1", -] - [[package]] name = "accesskit_consumer" version = "0.38.0" @@ -73,7 +53,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" dependencies = [ "accesskit", - "accesskit_consumer 0.38.0", + "accesskit_consumer", "hashbrown 0.16.1", "objc2 0.5.2", "objc2-app-kit 0.2.2", @@ -82,9 +62,9 @@ dependencies = [ [[package]] name = "accesskit_unix" -version = "0.21.1" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b016ca8db0ea0ea2ceff29a9d6240391492d960716aa471967c00e8cc8cb197c" +checksum = "03e156ed3802e35eefe894ef2671bc6c889303d8a7e110b5e1b48f504b91362f" dependencies = [ "accesskit", "accesskit_atspi_common", @@ -100,12 +80,12 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.33.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e93ac7bf50b964f1cbb75f741629a4e950571baa1ef1274457ab5a80d9bcc2" +checksum = "106c2b961215864d1c2e703ee63269c25c4e80a577ffb2c1017b9c17dcdf83a1" dependencies = [ "accesskit", - "accesskit_consumer 0.37.0", + "accesskit_consumer", "hashbrown 0.16.1", "static_assertions", "windows 0.62.2", @@ -302,15 +282,6 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" -[[package]] -name = "ar_archive_writer" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cd58deff2140a0a8eae87e417bd01db68a33e148aa93d1e8cd837e55e312b6" -dependencies = [ - "object 0.39.1", -] - [[package]] name = "arbitrary" version = "1.4.2" @@ -829,7 +800,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide 0.8.9", - "object 0.37.3", + "object", "rustc-demangle", "windows-link 0.2.1", ] @@ -852,20 +823,11 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bindgen" -version = "0.71.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ "bitflags 2.13.1", "cexpr", @@ -1394,16 +1356,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "collections" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "gpui_util", - "indexmap", - "rustc-hash 2.1.3", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -1740,15 +1692,6 @@ dependencies = [ "winnow 0.6.26", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.7" @@ -1913,16 +1856,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "derive_refineable" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "dialoguer" version = "0.12.0" @@ -1970,7 +1903,16 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" dependencies = [ - "dirs-sys", + "dirs-sys 0.5.0", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", ] [[package]] @@ -1979,7 +1921,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys", + "dirs-sys 0.5.0", ] [[package]] @@ -1992,6 +1934,18 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.4.6", + "windows-sys 0.48.0", +] + [[package]] name = "dirs-sys" version = "0.5.0" @@ -2365,17 +2319,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "fancy-regex" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" -dependencies = [ - "bit-set 0.8.0", - "regex-automata", - "regex-syntax", -] - [[package]] name = "fastrand" version = "2.5.0" @@ -2968,93 +2911,27 @@ dependencies = [ "bitflags 2.13.1", ] -[[package]] -name = "gpui" -version = "0.2.2" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "accesskit", - "anyhow", - "async-channel 2.5.0", - "async-task", - "backtrace", - "bindgen", - "bitflags 2.13.1", - "chrono", - "collections", - "core-video", - "ctor", - "derive_more", - "embed-resource", - "etagere", - "futures", - "futures-concurrency", - "getrandom 0.3.4", - "gpui_macros", - "gpui_shared_string", - "gpui_util", - "hdrhistogram", - "heapless", - "http_client", - "image", - "inventory", - "itertools 0.14.0", - "log", - "lyon", - "num_cpus", - "parking", - "parking_lot", - "pin-project", - "pollster 0.4.0", - "postage", - "profiling", - "proptest", - "rand 0.9.5", - "raw-window-handle", - "refineable", - "regex", - "resvg 0.46.0", - "scheduler", - "schemars", - "seahash", - "serde", - "serde_json", - "slotmap", - "smallvec", - "spin 0.10.1", - "stacksafe", - "strum", - "sum_tree", - "taffy", - "thiserror 2.0.20", - "tracing", - "ttf-parser", - "url", - "usvg 0.46.0", - "util_macros", - "uuid", - "waker-fn", - "web-time", - "windows 0.61.3", - "zed-font-kit", - "zed-scap", - "ztracing", -] - [[package]] name = "gpui-base" -version = "0.5.2" -source = "git+https://github.com/longbridge/gpui-component.git#c6ffd3e166abb43bff8845f0aa61711adb128dcf" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e904ee0d351f4e85b967e26ae986d3aa195a8d9d35fcd18184a2c40989694e" dependencies = [ "aho-corasick", "anyhow", + "ashpd", "async-channel 2.5.0", "chrono", - "gpui", - "gpui_macros", - "gpui_platform", + "data-url", + "futures", + "gpui-pre", + "gpui-pre-macros", + "gpui-pre-sum-tree", + "html5ever", "instant", "lsp-types", + "markdown", + "markup5ever_rcdom", "objc2 0.6.4", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", @@ -3066,35 +2943,33 @@ dependencies = [ "serde_json", "smallvec", "smol", - "syntect", "tracing", "unicode-segmentation", "web-time", - "zed-sum-tree", + "windows 0.58.0", ] [[package]] name = "gpui-component" -version = "0.5.2" -source = "git+https://github.com/longbridge/gpui-component.git#c6ffd3e166abb43bff8845f0aa61711adb128dcf" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cf6c72516b44bb2e66a1bd2ccf77a122ecd1b54a75559ac299bb296bfcb5bb7" dependencies = [ "anyhow", "chrono", "core-text 21.0.0", "enum-iterator", - "futures", - "gpui", "gpui-base", - "gpui-component-assets", "gpui-component-macros", - "gpui_macros", - "html5ever", + "gpui-kit-assets", + "gpui-pre", + "gpui-pre-macros", + "gpui-pre-sum-tree", "instant", "itertools 0.13.0", "log", "lsp-types", "markdown", - "markup5ever_rcdom", "notify", "num-traits", "objc2 0.6.4", @@ -3103,6 +2978,7 @@ dependencies = [ "once_cell", "paste", "raw-window-handle", + "regex", "resvg 0.45.1", "ropey", "rust-i18n", @@ -3115,90 +2991,179 @@ dependencies = [ "tracing", "uuid", "windows 0.58.0", - "zed-sum-tree", ] [[package]] -name = "gpui-component-assets" -version = "0.5.1" -source = "git+https://github.com/longbridge/gpui-component.git#c6ffd3e166abb43bff8845f0aa61711adb128dcf" +name = "gpui-component-macros" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3867545508c7cf6a5f6da586f60d894a3f8e7cce94b7fe82df7fad5f868ec20e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "gpui-kit-assets" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111d3d03a68454318a193f137419864ccebdc7d3dc0194b0b0b3f818a6bc3d55" dependencies = [ "anyhow", - "gpui", + "gpui-pre", + "gpui-pre-reqwest", "log", "rust-embed", "wasm-bindgen", "wasm-bindgen-futures", - "zed-reqwest", ] [[package]] -name = "gpui-component-macros" -version = "0.5.1" -source = "git+https://github.com/longbridge/gpui-component.git#c6ffd3e166abb43bff8845f0aa61711adb128dcf" +name = "gpui-pre" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0437c0b83e636a92bd1a39fa1d05fb632ae671289537497b35871ffbe231b84" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", + "accesskit", + "anyhow", + "async-channel 2.5.0", + "async-task", + "backtrace", + "bindgen", + "bitflags 2.13.1", + "chrono", + "core-video", + "ctor", + "derive_more", + "embed-resource", + "etagere", + "futures", + "futures-concurrency", + "getrandom 0.3.4", + "gpui-pre-collections", + "gpui-pre-http-client", + "gpui-pre-macros", + "gpui-pre-refineable", + "gpui-pre-scheduler", + "gpui-pre-shared-string", + "gpui-pre-sum-tree", + "gpui-pre-util", + "gpui-pre-util-macros", + "heapless", + "image", + "inventory", + "itertools 0.14.0", + "log", + "lyon", + "num_cpus", + "objc2-core-foundation", + "objc2-core-video", + "parking", + "parking_lot", + "pin-project", + "pollster 0.4.0", + "postage", + "profiling", + "proptest", + "rand 0.9.5", + "raw-window-handle", + "regex", + "resvg 0.46.0", + "schemars", + "seahash", + "serde", + "serde_json", + "slotmap", + "smallvec", + "spin 0.10.1", + "strum", + "taffy", + "thiserror 2.0.20", + "ttf-parser", + "url", + "usvg 0.46.0", + "uuid", + "waker-fn", + "web-time", + "windows 0.62.2", + "zed-font-kit", + "zed-scap", ] [[package]] -name = "gpui_apple" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-apple" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af534f0746eb9e014114bcc0ee00dc250c4b8d75df2e437180c403aa65649c1" dependencies = [ "anyhow", "block", "cbindgen", "cocoa 0.26.0", - "collections", "core-foundation 0.10.1", "core-video", "derive_more", "etagere", "foreign-types 0.5.0", - "gpui", + "gpui-pre", "image", "log", "metal", "objc", + "objc2 0.6.4", "parking_lot", ] [[package]] -name = "gpui_common" -version = "0.1.6" +name = "gpui-pre-collections" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e7a65204039187d1f4b3d4c2e0233eeac54d4acb0b13f9dc1a3b5adad26c1f" dependencies = [ - "anyhow", - "gpui", - "gpui-component", - "gpui-component-assets", - "rust-embed", - "smol", + "gpui-pre-util", + "indexmap", + "rustc-hash 2.1.3", ] [[package]] -name = "gpui_dock" -version = "0.1.6" +name = "gpui-pre-derive-refineable" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79dfb4a05f3cd9893d7768dbf5dba1bbbe99cab7394e89b360ccb3b2bcb6b34e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "gpui-pre-http-client" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd5a7542c77887a5aff997d78c95884119c8463409569b63fcf060956da1682" dependencies = [ "anyhow", - "gpui", - "gpui-component", - "gpui-component-assets", - "gpui_common", - "gpui_platform", - "itertools 0.14.0", - "rust-i18n", + "async-compression", + "bytes", + "derive_more", + "futures", + "http", + "http-body", + "log", + "parking_lot", "serde", "serde_json", - "smallvec", - "smol", + "serde_urlencoded", + "url", ] [[package]] -name = "gpui_linux" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-linux" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aab655cda1d6dcd549ac869e8678babc84cf573ab6794a1fe1a39c6c70c60b48" dependencies = [ "accesskit", "accesskit_unix", @@ -3209,13 +3174,13 @@ dependencies = [ "bytemuck", "calloop", "calloop-wayland-source", - "collections", "filedescriptor 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures", - "gpui", - "gpui_util", - "gpui_wgpu", - "http_client", + "gpui-pre", + "gpui-pre-collections", + "gpui-pre-http-client", + "gpui-pre-util", + "gpui-pre-wgpu", "libc", "log", "notify-rust", @@ -3242,18 +3207,17 @@ dependencies = [ ] [[package]] -name = "gpui_macos" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-macos" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951d17e41a72067ad2d35c60e08a62e8ad7fa9400b41c802e26cfb459f6c05da" dependencies = [ "accesskit", "accesskit_macos", "anyhow", "async-task", - "block", "block2 0.6.2", "cocoa 0.26.0", - "collections", "core-foundation 0.10.1", "core-foundation-sys", "core-graphics 0.24.0", @@ -3262,20 +3226,22 @@ dependencies = [ "dispatch2", "foreign-types 0.5.0", "futures", - "gpui", - "gpui_apple", - "gpui_util", + "gpui-pre", + "gpui-pre-apple", + "gpui-pre-collections", + "gpui-pre-util", "image", "itertools 0.14.0", "libc", "log", "mach2", - "media", - "metal", "objc", "objc2 0.6.4", "objc2-app-kit 0.3.2", + "objc2-core-graphics", + "objc2-core-media", "objc2-foundation 0.3.2", + "objc2-screen-capture-kit", "objc2-user-notifications", "parking_lot", "pathfinder_geometry", @@ -3288,129 +3254,186 @@ dependencies = [ ] [[package]] -name = "gpui_macros" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-macros" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6324092b40ea8ec7c327a4a28427e366a489b4d5d23b5d1bd0243fc2f4ca7a9e" dependencies = [ "heck 0.5.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.119", ] [[package]] -name = "gpui_platform" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-perf" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94bff26ccd8105f6206144f8dab16a2dc02e7a68f39dada02cdf492f0afd940" +dependencies = [ + "gpui-pre-collections", + "serde", + "serde_json", +] + +[[package]] +name = "gpui-pre-platform" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8423d1e0a693d2f9f16c0326bb01b5e81ec0531854d596a18476934ac6880478" dependencies = [ "console_error_panic_hook", - "gpui", - "gpui_linux", - "gpui_macos", - "gpui_web", - "gpui_windows", + "gpui-pre", + "gpui-pre-linux", + "gpui-pre-macos", + "gpui-pre-web", + "gpui-pre-windows", ] [[package]] -name = "gpui_sftp" -version = "0.1.6" +name = "gpui-pre-refineable" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93b4b0a8d296a3ee5beb1136bc48f8167a6028eb1e243b56851dcd8c9fc6d7a1" dependencies = [ - "camino", - "gpui", - "gpui-component", - "gpui_common", - "gpui_transfer", - "home", - "log", - "rust-i18n", - "smol", - "time", - "wezterm-ssh", + "gpui-pre-derive-refineable", ] [[package]] -name = "gpui_shared_string" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-reqwest" +version = "0.12.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05be23908e707966824f8c51a609904b7f30739e8d915e120a53c1b995ba964c" dependencies = [ - "schemars", + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "rustls-pki-types", "serde", - "smol_str", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls", + "tokio-socks", + "tokio-util", + "tower", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "windows-registry 0.4.0", ] [[package]] -name = "gpui_term" -version = "0.1.6" +name = "gpui-pre-scheduler" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7b10b3d2fc3fda24847a04436eca9531612c8414874a37ddc005f20e521e12" dependencies = [ - "alacritty_terminal", - "anyhow", - "bitflags 2.13.1", - "camino", - "core-text 22.0.0", - "env_logger", - "filedescriptor 0.8.3 (git+https://github.com/wezterm/wezterm.git)", + "async-task", + "backtrace", + "chrono", + "flume", "futures", - "gpui", - "gpui-component", - "gpui-component-assets", - "gpui_common", - "gpui_platform", - "home", - "libc", - "log", "parking_lot", - "polling", - "portable-pty", - "rust-i18n", + "rand 0.9.5", + "wasm_thread", + "web-time", +] + +[[package]] +name = "gpui-pre-shared-string" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe17f81bd98a0253140ea79f7f76442d7499bd8d17db302861af8e46c11d38df" +dependencies = [ "schemars", "serde", - "serde_json", - "serial2", - "signal-hook 0.4.4", - "smol", - "unicode-segmentation", - "unicode-width", - "url", - "urlencoding", - "wezterm-ssh", - "wezterm-surface", - "wezterm-term", - "windows 0.62.2", + "smol_str", ] [[package]] -name = "gpui_transfer" -version = "0.1.6" +name = "gpui-pre-sum-tree" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6d35e998a51d24248dad731de1f09d386cbbf46a04edde3b67f469b2ce3f16" dependencies = [ - "gpui", + "gpui-pre-ztracing", + "heapless", + "log", + "rayon", + "tracing", ] [[package]] -name = "gpui_util" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-util" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a026a30c578930d20974fd8c3d77de36223ac7ba193bd4259e7238929bc8806" dependencies = [ "anyhow", "log", - "which 6.0.3", + "which", ] [[package]] -name = "gpui_web" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-util-macros" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cbf79627a6afc626d4e887dad9d2d92bb069413e8cc692ba3e90bff219eb7a9" +dependencies = [ + "gpui-pre-perf", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "gpui-pre-web" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34be433b9fcb370b1fe9a1c7fe911f0eb6058791ef8167dcf6c5a5deb624975c" dependencies = [ "anyhow", "console_error_panic_hook", "futures", - "gpui", - "gpui_wgpu", - "http_client", + "gpui-pre", + "gpui-pre-http-client", + "gpui-pre-scheduler", + "gpui-pre-wgpu", "js-sys", "log", "parking_lot", "raw-window-handle", - "scheduler", + "smallvec", + "unicode-properties", + "unicode-script", + "unicode-segmentation", "uuid", "wasm-bindgen", "wasm-bindgen-futures", @@ -3420,17 +3443,18 @@ dependencies = [ ] [[package]] -name = "gpui_wgpu" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-wgpu" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05515b32799b1767d69300921c1b562cd53104965211a0e8905acdc7aa18e693" dependencies = [ "anyhow", "bytemuck", - "collections", "cosmic-text", "etagere", - "gpui", - "gpui_util", + "gpui-pre", + "gpui-pre-collections", + "gpui-pre-util", "itertools 0.14.0", "log", "parking_lot", @@ -3446,19 +3470,20 @@ dependencies = [ ] [[package]] -name = "gpui_windows" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" +name = "gpui-pre-windows" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27662e65bfcf4445d2cccfad91f1570ec07f4b1b5de98400a9f207fd19c464cf" dependencies = [ "accesskit", "accesskit_windows", "anyhow", - "collections", "dunce", "etagere", "futures", - "gpui", - "gpui_util", + "gpui-pre", + "gpui-pre-collections", + "gpui-pre-util", "image", "itertools 0.14.0", "log", @@ -3467,10 +3492,134 @@ dependencies = [ "raw-window-handle", "smallvec", "uuid", - "windows 0.61.3", - "windows-core 0.61.2", - "windows-numerics 0.2.0", - "windows-registry 0.5.3", + "windows 0.62.2", + "windows-core 0.62.2", + "windows-numerics 0.3.1", + "windows-registry 0.6.1", +] + +[[package]] +name = "gpui-pre-zlog" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a5af0b734a391a84872eb770b3ee9830091ec2487b79d06371fe14eefb2b5d" +dependencies = [ + "anyhow", + "chrono", + "gpui-pre-collections", + "log", +] + +[[package]] +name = "gpui-pre-ztracing" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24cb19f78c5bc3aab8ddf1e8e0bd6b402fbcb9c7f112f64ddbedef8f8768a59" +dependencies = [ + "gpui-pre-zlog", + "gpui-pre-ztracing-macro", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "gpui-pre-ztracing-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1bb25850ad31b88bbdef454afb93ec4cdb81f5e200ba5b3f1a0368111780d2c" + +[[package]] +name = "gpui_common" +version = "0.1.6" +dependencies = [ + "anyhow", + "gpui-component", + "gpui-kit-assets", + "gpui-pre", + "rust-embed", + "smol", +] + +[[package]] +name = "gpui_dock" +version = "0.1.6" +dependencies = [ + "anyhow", + "gpui-component", + "gpui-kit-assets", + "gpui-pre", + "gpui-pre-platform", + "gpui_common", + "itertools 0.14.0", + "rust-i18n", + "serde", + "serde_json", + "smallvec", + "smol", +] + +[[package]] +name = "gpui_sftp" +version = "0.1.6" +dependencies = [ + "camino", + "gpui-component", + "gpui-pre", + "gpui_common", + "gpui_transfer", + "home", + "log", + "rust-i18n", + "smol", + "time", + "wezterm-ssh", +] + +[[package]] +name = "gpui_term" +version = "0.1.6" +dependencies = [ + "alacritty_terminal", + "anyhow", + "bitflags 2.13.1", + "camino", + "core-text 22.0.0", + "env_logger", + "filedescriptor 0.8.3 (git+https://github.com/wezterm/wezterm.git)", + "futures", + "gpui-component", + "gpui-kit-assets", + "gpui-pre", + "gpui-pre-platform", + "gpui_common", + "home", + "libc", + "log", + "parking_lot", + "polling", + "portable-pty", + "rust-i18n", + "schemars", + "serde", + "serde_json", + "serial2", + "signal-hook 0.4.4", + "smol", + "unicode-segmentation", + "unicode-width", + "url", + "urlencoding", + "wezterm-ssh", + "wezterm-surface", + "wezterm-term", + "windows 0.62.2", +] + +[[package]] +name = "gpui_transfer" +version = "0.1.6" +dependencies = [ + "gpui-pre", ] [[package]] @@ -3589,20 +3738,6 @@ dependencies = [ "hashbrown 0.15.5", ] -[[package]] -name = "hdrhistogram" -version = "7.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d1053f4708f0af3cf9fc5bffc7e68a914a3c45becb231c80068c9c3f78bea" -dependencies = [ - "base64 0.22.1", - "byteorder", - "crossbeam-channel", - "flate2", - "nom 8.0.0", - "num-traits", -] - [[package]] name = "heapless" version = "0.9.3" @@ -3734,26 +3869,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http_client" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "anyhow", - "async-compression", - "bytes", - "derive_more", - "futures", - "http", - "http-body", - "log", - "parking_lot", - "serde", - "serde_json", - "serde_urlencoded", - "url", -] - [[package]] name = "httparse" version = "1.10.1" @@ -4576,12 +4691,6 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4821,23 +4930,9 @@ name = "md-5" version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "media" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "anyhow", - "bindgen", - "core-foundation 0.10.1", - "core-video", - "foreign-types 0.5.0", - "metal", - "objc", +dependencies = [ + "cfg-if", + "digest 0.10.7", ] [[package]] @@ -4875,11 +4970,11 @@ name = "menubar" version = "0.1.6" dependencies = [ "env_logger", - "gpui", "gpui-base", "gpui-component", - "gpui-component-assets", - "gpui_platform", + "gpui-kit-assets", + "gpui-pre", + "gpui-pre-platform", "rust-i18n", ] @@ -5362,6 +5457,28 @@ dependencies = [ "objc2-foundation 0.3.2", ] +[[package]] +name = "objc2-core-audio" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" +dependencies = [ + "dispatch2", + "objc2 0.6.4", + "objc2-core-audio-types", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-core-audio-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" +dependencies = [ + "bitflags 2.13.1", + "objc2 0.6.4", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -5441,6 +5558,21 @@ dependencies = [ "objc2-foundation 0.3.2", ] +[[package]] +name = "objc2-core-media" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ec576860167a15dd9fce7fbee7512beb4e31f532159d3482d1f9c6caedf31d" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2 0.6.4", + "objc2-core-audio", + "objc2-core-audio-types", + "objc2-core-foundation", + "objc2-core-video", +] + [[package]] name = "objc2-core-text" version = "0.3.2" @@ -5579,6 +5711,20 @@ dependencies = [ "objc2-metal 0.3.2", ] +[[package]] +name = "objc2-screen-capture-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b7c5390f477482f001bc354d6571a70db7e4f8d5288e860c45521fbce11394" +dependencies = [ + "block2 0.6.2", + "dispatch2", + "objc2 0.6.4", + "objc2-core-graphics", + "objc2-core-media", + "objc2-foundation 0.3.2", +] + [[package]] name = "objc2-user-notifications" version = "0.3.2" @@ -5619,15 +5765,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "object" -version = "0.39.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.4" @@ -5863,16 +6000,6 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "perf" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "collections", - "serde", - "serde_json", -] - [[package]] name = "pest" version = "2.9.0" @@ -6292,8 +6419,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.10.0" -source = "git+https://github.com/proptest-rs/proptest?rev=3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b#3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", @@ -6312,7 +6440,8 @@ dependencies = [ [[package]] name = "proptest-macro" version = "0.5.0" -source = "git+https://github.com/proptest-rs/proptest?rev=3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b#3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efaa288b896cb2b345da7b7f2110ab19e51565b83495b56fcec98a62f8b1f33e" dependencies = [ "convert_case 0.11.0", "proc-macro2", @@ -6320,16 +6449,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "psm" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd034599e63b970727f70d79e02d62390a4a84f7c6b827c27c46d5ac3fa622" -dependencies = [ - "ar_archive_writer", - "cc", -] - [[package]] name = "pulp" version = "0.22.3" @@ -6754,14 +6873,6 @@ dependencies = [ "syn 3.0.3", ] -[[package]] -name = "refineable" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "derive_refineable", -] - [[package]] name = "regex" version = "1.13.1" @@ -7060,19 +7171,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.13.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.4" @@ -7216,22 +7314,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "scheduler" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "async-task", - "backtrace", - "chrono", - "flume", - "futures", - "parking_lot", - "rand 0.9.5", - "wasm_thread", - "web-time", -] - [[package]] name = "schemars" version = "1.2.2" @@ -7615,7 +7697,7 @@ version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32824fab5e16e6c4d86dc1ba84489390419a39f97699852b66480bb87d297ed8" dependencies = [ - "dirs", + "dirs 6.0.0", ] [[package]] @@ -7813,40 +7895,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "stacker" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707f49d46706bacf8a2b00d51dace3f9de527c13eec3778f570c411f89e69967" -dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.61.2", -] - -[[package]] -name = "stacksafe" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f9c34983ac74195c710c473db6fdf1085f64a47dbaa0090d1bea03be70da66" -dependencies = [ - "stacker", - "stacksafe-macro", -] - -[[package]] -name = "stacksafe-macro" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6feeae42a2d6b0dcb8aeb2f08d9e48cdac600239cf8a20fc59f9e252e86bdfe1" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.3", -] - [[package]] name = "static_assertions" version = "1.1.0" @@ -7913,18 +7961,18 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -7938,18 +7986,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sum_tree" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "heapless", - "log", - "rayon", - "tracing", - "ztracing", -] - [[package]] name = "sval" version = "2.21.1" @@ -8119,24 +8155,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "syntect" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656b45c05d95a5704399aeef6bd0ddec7b2b3531b7c9e900abbf7c4d2190c925" -dependencies = [ - "bincode", - "fancy-regex 0.16.2", - "flate2", - "fnv", - "once_cell", - "regex-syntax", - "serde", - "serde_derive", - "thiserror 2.0.20", - "walkdir", -] - [[package]] name = "sys-locale" version = "0.3.2" @@ -8305,11 +8323,11 @@ dependencies = [ "embed-resource", "env_logger", "futures", - "gpui", "gpui-component", + "gpui-pre", + "gpui-pre-platform", "gpui_common", "gpui_dock", - "gpui_platform", "gpui_sftp", "gpui_term", "gpui_transfer", @@ -8355,7 +8373,7 @@ source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d71 dependencies = [ "anyhow", "bitflags 2.13.1", - "fancy-regex 0.14.0", + "fancy-regex", "filedescriptor 0.8.3 (git+https://github.com/wezterm/wezterm.git)", "finl_unicode", "fixedbitset 0.4.2", @@ -9133,16 +9151,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "util_macros" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "perf", - "quote", - "syn 2.0.119", -] - [[package]] name = "uuid" version = "1.24.1" @@ -9383,7 +9391,8 @@ dependencies = [ [[package]] name = "wasm_thread" version = "0.3.3" -source = "git+https://github.com/zed-industries/wasm_thread?rev=0cf96c7708dfb97ccf3da50347e25edcf75d6937#0cf96c7708dfb97ccf3da50347e25edcf75d6937" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7516db7f32decdadb1c3b8deb1b7d78b9df7606c5cc2f6241737c2ab3a0258e" dependencies = [ "futures", "js-sys", @@ -9399,6 +9408,7 @@ checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", "downcast-rs", + "log", "rustix 1.1.4", "scoped-tls", "smallvec", @@ -9688,7 +9698,7 @@ version = "0.1.0" source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" dependencies = [ "bitflags 2.13.1", - "fancy-regex 0.14.0", + "fancy-regex", "finl_unicode", "fixedbitset 0.4.2", "ordered-float 4.6.0", @@ -9921,18 +9931,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "which" -version = "6.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" -dependencies = [ - "either", - "home", - "rustix 0.38.44", - "winsafe", -] - [[package]] name = "which" version = "8.0.5" @@ -10233,13 +10231,13 @@ dependencies = [ [[package]] name = "windows-registry" -version = "0.5.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -10610,12 +10608,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - [[package]] name = "wio" version = "0.2.2" @@ -10631,12 +10623,6 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" -[[package]] -name = "workspace-hack" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beffa227304dbaea3ad6a06ac674f9bc83a3dec3b7f63eeb442de37e7cb6bb01" - [[package]] name = "writeable" version = "0.6.4" @@ -10704,15 +10690,17 @@ checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" [[package]] name = "xim-ctext" version = "0.3.0" -source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac61a7062c40f3c37b6e82eeeef835d5cc7824b632a72784a89b3963c33284c" dependencies = [ "encoding_rs", ] [[package]] name = "xim-parser" -version = "0.2.1" -source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dcee45f89572d5a65180af3a84e7ddb24f5ea690a6d3aa9de231281544dd7b7" dependencies = [ "bitflags 2.13.1", ] @@ -10913,14 +10901,15 @@ dependencies = [ [[package]] name = "zed-font-kit" version = "0.14.1-zed" -source = "git+https://github.com/zed-industries/font-kit?rev=94b0f28166665e8fd2f53ff6d268a14955c82269#94b0f28166665e8fd2f53ff6d268a14955c82269" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3898e450f36f852edda72e3f985c34426042c4951790b23b107f93394f9bff5" dependencies = [ "bitflags 2.13.1", "byteorder", "core-foundation 0.10.1", "core-graphics 0.24.0", "core-text 21.0.0", - "dirs", + "dirs 5.0.1", "dwrote", "float-ord", "freetype-sys", @@ -10934,59 +10923,11 @@ dependencies = [ "yeslogic-fontconfig-sys", ] -[[package]] -name = "zed-reqwest" -version = "0.12.15-zed" -source = "git+https://github.com/zed-industries/reqwest.git?rev=c15662463bda39148ba154100dd44d3fba5873a4#c15662463bda39148ba154100dd44d3fba5873a4" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "mime_guess", - "once_cell", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-native-certs", - "rustls-pemfile", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-rustls", - "tokio-socks", - "tokio-util", - "tower", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "windows-registry 0.4.0", -] - [[package]] name = "zed-scap" version = "0.0.8-zed" -source = "git+https://github.com/zed-industries/scap?rev=4afea48c3b002197176fb19cd0f9b180dd36eaac#4afea48c3b002197176fb19cd0f9b180dd36eaac" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b338d705ae33a43ca00287c11129303a7a0aa57b101b72a1c08c863f698ac8" dependencies = [ "anyhow", "cocoa 0.25.0", @@ -11004,22 +10945,11 @@ dependencies = [ "xcb", ] -[[package]] -name = "zed-sum-tree" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d490156d0d7311855564d6e1d6dccab992405a0c0e15e1c8ef18920c02177e35" -dependencies = [ - "arrayvec", - "log", - "rayon", - "workspace-hack", -] - [[package]] name = "zed-xim" version = "0.4.0-zed" -source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0b46ed118eba34d9ba53d94ddc0b665e0e06a2cf874cfa2dd5dec278148642" dependencies = [ "ahash", "hashbrown 0.14.5", @@ -11101,7 +11031,7 @@ dependencies = [ "urlencoding", "uuid", "webpki-roots 1.0.9", - "which 8.0.5", + "which", "zip", ] @@ -11219,17 +11149,6 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" -[[package]] -name = "zlog" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "anyhow", - "chrono", - "collections", - "log", -] - [[package]] name = "zmij" version = "1.0.23" @@ -11248,22 +11167,6 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "ztracing" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" -dependencies = [ - "tracing", - "tracing-subscriber", - "zlog", - "ztracing_macro", -] - -[[package]] -name = "ztracing_macro" -version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#b0e37a6c18a6321061ba842e26ee7156729f0870" - [[package]] name = "zune-core" version = "0.4.12" diff --git a/Cargo.toml b/Cargo.toml index e681f31..c4a62e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,12 +83,13 @@ vte = { version = "0.15", default-features = false } windows = "0.62" windows-sys = "0.62" -# gpui dependencies -gpui = { git = "https://github.com/zed-industries/zed" } -gpui_platform = { git = "https://github.com/zed-industries/zed" } -gpui-base = { git = "https://github.com/longbridge/gpui-component.git" } -gpui-component = { git = "https://github.com/longbridge/gpui-component.git" } -gpui-component-assets = { git = "https://github.com/longbridge/gpui-component.git" } +# GPUI Kit components pin this GPUI snapshot; upgrade these dependencies together. +# Keep the existing crate names via aliases so application imports stay stable. +gpui = { package = "gpui-pre", version = "=0.3.6" } +gpui_platform = { package = "gpui-pre-platform", version = "=0.3.6", features = ["font-kit", "runtime_shaders"] } +gpui-base = "=0.6.6" +gpui-component = "=0.6.6" +gpui-component-assets = { package = "gpui-kit-assets", version = "=0.6.6" } # termua dependencies alacritty_terminal = { path = "crates/alacritty_terminal" } @@ -109,9 +110,6 @@ wezterm-surface = { git = "https://github.com/wezterm/wezterm.git" } wezterm-term = { git = "https://github.com/wezterm/wezterm.git" } wezterm-uds = { git = "https://github.com/wezterm/wezterm.git" } -[patch.crates-io] -gpui-component-macros = { git = "https://github.com/longbridge/gpui-component.git" } - [profile.release] strip = true opt-level = "z" diff --git a/crates/gpui_dock/src/tiles.rs b/crates/gpui_dock/src/tiles.rs index ba7f53f..f0a4ac3 100644 --- a/crates/gpui_dock/src/tiles.rs +++ b/crates/gpui_dock/src/tiles.rs @@ -24,6 +24,9 @@ actions!(gpui_dock_tiles, [Undo, Redo]); const MINIMUM_SIZE: Size = size(px(100.), px(100.)); const DRAG_BAR_HEIGHT: Pixels = px(30.); const HANDLE_SIZE: Pixels = px(5.0); +// Preserve the tile defaults removed from gpui-component's shared theme. +const TILE_GRID_SIZE: Pixels = px(8.); +const TILE_RADIUS: Pixels = px(0.); #[derive(Clone, PartialEq, Debug)] struct TileChange { @@ -383,7 +386,7 @@ impl Tiles { let mut new_origin = self.dragging_initial_bounds.origin + delta; // Apply magnetic snap before boundary checks - let snap_threshold = cx.theme().tile_grid_size; + let snap_threshold = TILE_GRID_SIZE; let dragging_bounds = Bounds { origin: new_origin, size: self.dragging_initial_bounds.size, @@ -1041,7 +1044,7 @@ impl Tiles { // More 1px to account for the border width when 2 panels are too close .w(item.bounds.size.width + px(1.)) .h(item.bounds.size.height + px(1.)) - .rounded(cx.theme().tile_radius) + .rounded(TILE_RADIUS) .child(h_flex().overflow_hidden().size_full().child(panel_view)) .children(self.render_resize_handles(window, cx, entity_id, &item)) .child(self.render_drag_bar(window, cx, entity_id, &item)) @@ -1135,8 +1138,8 @@ impl Tiles { } #[inline] -fn round_to_nearest_ten(value: Pixels, cx: &App) -> Pixels { - (value / cx.theme().tile_grid_size).round() * cx.theme().tile_grid_size +fn round_to_nearest_ten(value: Pixels, _cx: &App) -> Pixels { + (value / TILE_GRID_SIZE).round() * TILE_GRID_SIZE } #[inline] @@ -1175,7 +1178,7 @@ impl Render for Tiles { div() .relative() - .bg(cx.theme().tiles) + .bg(cx.theme().background) .child( div() .id("tiles") From a579f0db3aefcdebce6a3f254fcfa4ab3bef2027 Mon Sep 17 00:00:00 2001 From: iamazy Date: Wed, 23 Sep 2026 19:58:13 +0800 Subject: [PATCH 4/6] Update titlebar.rs --- crates/menubar/src/titlebar.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/menubar/src/titlebar.rs b/crates/menubar/src/titlebar.rs index 43aea07..cce472e 100644 --- a/crates/menubar/src/titlebar.rs +++ b/crates/menubar/src/titlebar.rs @@ -68,9 +68,11 @@ impl MenubarTitleBar { mod tests { use std::sync::Mutex; + #[cfg(not(target_os = "macos"))] + use gpui::AppContext as _; use gpui::{ - AppContext as _, AvailableSpace, Context, InteractiveElement as _, IntoElement, - ParentElement as _, Render, Styled as _, Window, point, px, size, + AvailableSpace, Context, InteractiveElement as _, IntoElement, ParentElement as _, Render, + Styled as _, Window, point, px, size, }; #[cfg(not(target_os = "macos"))] use gpui_base::TextSelection; From 49c11aac8d46497576c19ced0ec19df00ffcd436 Mon Sep 17 00:00:00 2001 From: iamazy Date: Wed, 23 Sep 2026 21:00:57 +0800 Subject: [PATCH 5/6] chore: upgrade --- Cargo.lock | 978 +++++++++++++++--- Cargo.toml | 11 +- crates/alacritty_terminal/Cargo.toml | 4 +- .../src/tty/windows/child.rs | 6 +- crates/termua_zeroclaw/Cargo.toml | 4 +- crates/termua_zeroclaw/src/lib.rs | 25 +- termua/src/update.rs | 10 +- 7 files changed, 875 insertions(+), 163 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eecaf08..6003ec9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -162,7 +162,7 @@ dependencies = [ name = "alacritty_terminal" version = "0.25.2-dev" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "bitflags 2.13.1", "home", "libc", @@ -179,7 +179,7 @@ dependencies = [ "signal-hook 0.4.4", "unicode-width", "vte", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -282,6 +282,15 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arbitrary" version = "1.4.2" @@ -570,9 +579,9 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.34.1" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8447f02eaa65412035e2d3eeaa3fc82bbb8d7137c84c5976b4af685136012ee9" +checksum = "d6ab5b7664abf9ccae07576888c72bc93750c7090c1ff4ffee9317cc05d11618" dependencies = [ "async-net", "atomic-waker", @@ -582,7 +591,7 @@ dependencies = [ "futures-util", "log", "pin-project-lite", - "tungstenite", + "tungstenite 0.30.0", ] [[package]] @@ -600,6 +609,15 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -752,7 +770,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sha1", + "sha1 0.10.7", "sync_wrapper", "tokio", "tokio-tungstenite", @@ -843,6 +861,15 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -861,6 +888,12 @@ dependencies = [ "bit-vec 0.9.1", ] +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bit-vec" version = "0.8.0" @@ -1000,6 +1033,12 @@ version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" +[[package]] +name = "by_address" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" + [[package]] name = "bytemuck" version = "1.25.2" @@ -1078,6 +1117,15 @@ version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + [[package]] name = "cbc" version = "0.1.2" @@ -1378,6 +1426,20 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "compact_str" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + [[package]] name = "compression-codecs" version = "0.4.38" @@ -1471,6 +1533,35 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cookie" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a373e3602691c3cdea496d2f0ee5935151e6168fe87739483c463db1b2f2f87" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206" +dependencies = [ + "cookie", + "document-features", + "idna", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1681,6 +1772,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "cron" version = "0.15.0" @@ -1726,6 +1823,34 @@ version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.13.1", + "crossterm_winapi", + "derive_more", + "document-features", + "futures-core", + "mio", + "parking_lot", + "rustix 1.1.4", + "signal-hook 0.3.18", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + [[package]] name = "crunchy" version = "0.2.4" @@ -1778,6 +1903,40 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.3", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core", + "quote", + "syn 3.0.3", +] + [[package]] name = "data-encoding" version = "2.11.1" @@ -2308,6 +2467,16 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set 0.5.3", + "regex", +] + [[package]] name = "fancy-regex" version = "0.14.0" @@ -2397,6 +2566,12 @@ name = "finl_unicode" version = "1.3.0" source = "git+https://github.com/wez/finl_unicode.git?branch=no_std#a1892f26245529f2ef3877a9ebd610c96cec07a6" +[[package]] +name = "finl_unicode" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80bb028c8b4148c9ee0cca68fcd9add6044e81d3619f48577ddf13a263d047a2" + [[package]] name = "fixedbitset" version = "0.4.2" @@ -2417,7 +2592,6 @@ checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide 0.8.9", - "zlib-rs", ] [[package]] @@ -2447,6 +2621,17 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.9", +] + [[package]] name = "flume" version = "0.12.0" @@ -3327,8 +3512,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls", - "rustls-native-certs", + "rustls 0.23.43", + "rustls-native-certs 0.8.4", "rustls-pemfile", "rustls-pki-types", "serde", @@ -3337,7 +3522,7 @@ dependencies = [ "sync_wrapper", "system-configuration", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.4", "tokio-socks", "tokio-util", "tower", @@ -3359,7 +3544,7 @@ dependencies = [ "async-task", "backtrace", "chrono", - "flume", + "flume 0.12.0", "futures", "parking_lot", "rand 0.9.5", @@ -3550,7 +3735,7 @@ dependencies = [ "gpui-pre", "gpui-pre-platform", "gpui_common", - "itertools 0.14.0", + "itertools 0.15.0", "rust-i18n", "serde", "serde_json", @@ -3716,6 +3901,11 @@ name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "hashify" @@ -3930,10 +4120,10 @@ dependencies = [ "http", "hyper", "hyper-util", - "rustls", - "rustls-native-certs", + "rustls 0.23.43", + "rustls-native-certs 0.8.4", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.4", "tower-service", "webpki-roots 1.0.9", ] @@ -4068,6 +4258,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.1.0" @@ -4191,6 +4387,15 @@ dependencies = [ "web-time", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "inotify" version = "0.10.2" @@ -4221,6 +4426,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instability" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3b5acc1e2fd9375041a388da33d1eb8aed5f7a8c0dd3543e3ea2805adfbe20" +dependencies = [ + "darling", + "indoc", + "proc-macro2", + "quote", + "syn 3.0.3", +] + [[package]] name = "instant" version = "0.1.13" @@ -4334,6 +4552,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -4442,6 +4669,17 @@ dependencies = [ "terminal_size", ] +[[package]] +name = "kasuari" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" +dependencies = [ + "hashbrown 0.16.1", + "portable-atomic", + "thiserror 2.0.20", +] + [[package]] name = "khronos-egl" version = "6.0.0" @@ -4551,7 +4789,7 @@ dependencies = [ "nom 8.0.0", "percent-encoding", "quoted_printable", - "rustls", + "rustls 0.23.43", "socket2", "tokio", "url", @@ -4667,6 +4905,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "line-clipping" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e752191d037c44ad111a8caa762921926658402f01cc1253f7bef2020ece4f5e" +dependencies = [ + "bitflags 2.13.1", +] + [[package]] name = "linebender_resource_handle" version = "0.1.1" @@ -4746,6 +4993,15 @@ dependencies = [ "hashbrown 0.16.1", ] +[[package]] +name = "lru" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef9ac18847474e638e3702b76c65d4eb93428471a74778ef0f1be711717f89b5" +dependencies = [ + "hashbrown 0.17.1", +] + [[package]] name = "lru-slab" version = "0.1.2" @@ -4837,6 +5093,16 @@ dependencies = [ "uuid", ] +[[package]] +name = "mac_address" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" +dependencies = [ + "nix 0.29.0", + "winapi", +] + [[package]] name = "mach2" version = "0.5.0" @@ -5122,6 +5388,7 @@ dependencies = [ "cfg-if", "cfg_aliases", "libc", + "memoffset", ] [[package]] @@ -5363,6 +5630,15 @@ dependencies = [ "libc", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "objc" version = "0.2.7" @@ -5853,6 +6129,12 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + [[package]] name = "openssl-probe" version = "0.2.1" @@ -5915,6 +6197,39 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "palette" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddeed8580d347d2abf3dcf06a5f0b3dc020258338526b277847cd4248a70fc64" +dependencies = [ + "approx", + "libm", + "palette_derive", + "palette_math", +] + +[[package]] +name = "palette_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88537020289b719d81be994ccf1bbf4990f477e2f69ee52fe3e45f43a02e56be" +dependencies = [ + "by_address", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "palette_math" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e6eb142958d64335fb0e345c5b9ead2ecd6fc438c307e9d7d3c4fd428dbaf12" +dependencies = [ + "libm", +] + [[package]] name = "parking" version = "2.2.1" @@ -6323,7 +6638,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3fb618632874fb76937c2361a7f22afd393c982a2165595407edc75b06d3c1" dependencies = [ - "atomic", + "atomic 0.5.3", "crossbeam-queue", "futures", "log", @@ -6520,7 +6835,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.3", - "rustls", + "rustls 0.23.43", "socket2", "thiserror 2.0.20", "tokio", @@ -6541,7 +6856,7 @@ dependencies = [ "rand_pcg", "ring", "rustc-hash 2.1.3", - "rustls", + "rustls 0.23.43", "rustls-pki-types", "slab", "thiserror 2.0.20", @@ -6698,19 +7013,120 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a611d15b50743feb4c76b7d03edcb0e64f399c26961e4efe6975bc398be6aa3d" [[package]] -name = "rav1e" -version = "0.8.1" +name = "ratatui" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" +checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d" dependencies = [ - "aligned-vec", - "arbitrary", - "arg_enum_proc_macro", - "arrayvec", - "av-scenechange", - "av1-grain", - "bitstream-io", - "built", + "instability", + "ratatui-core", + "ratatui-crossterm", + "ratatui-macros", + "ratatui-termina", + "ratatui-termwiz", + "ratatui-widgets", + "serde", +] + +[[package]] +name = "ratatui-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c" +dependencies = [ + "bitflags 2.13.1", + "compact_str", + "critical-section", + "hashbrown 0.17.1", + "itertools 0.14.0", + "kasuari", + "lru 0.18.5", + "palette", + "serde", + "strum", + "thiserror 2.0.20", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + +[[package]] +name = "ratatui-crossterm" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0" +dependencies = [ + "cfg-if", + "crossterm", + "instability", + "ratatui-core", +] + +[[package]] +name = "ratatui-macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814" +dependencies = [ + "ratatui-core", + "ratatui-widgets", +] + +[[package]] +name = "ratatui-termina" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2" +dependencies = [ + "instability", + "ratatui-core", + "termina", +] + +[[package]] +name = "ratatui-termwiz" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977" +dependencies = [ + "ratatui-core", + "termwiz 0.23.3", +] + +[[package]] +name = "ratatui-widgets" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1" +dependencies = [ + "bitflags 2.13.1", + "hashbrown 0.17.1", + "indoc", + "instability", + "itertools 0.14.0", + "line-clipping", + "ratatui-core", + "serde", + "strum", + "time", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "rav1e" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" +dependencies = [ + "aligned-vec", + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av-scenechange", + "av1-grain", + "bitstream-io", + "built", "cfg-if", "interpolate_name", "itertools 0.14.0", @@ -6931,14 +7347,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls", + "rustls 0.23.43", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.4", "tokio-util", "tower", "tower-http", @@ -7032,6 +7448,24 @@ dependencies = [ "memchr", ] +[[package]] +name = "rumqttc" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1568e15fab2d546f940ed3a21f48bbbd1c494c90c99c4481339364a497f94a9" +dependencies = [ + "bytes", + "flume 0.11.1", + "futures-util", + "log", + "rustls-native-certs 0.7.3", + "rustls-pemfile", + "rustls-webpki 0.102.8", + "thiserror 1.0.69", + "tokio", + "tokio-rustls 0.25.0", +] + [[package]] name = "rusqlite" version = "0.37.0" @@ -7195,6 +7629,20 @@ dependencies = [ "rustix 1.1.4", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls" version = "0.23.43" @@ -7206,21 +7654,34 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.103.14", "subtle", "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe 0.1.6", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework 2.11.1", +] + [[package]] name = "rustls-native-certs" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.1", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.7.0", ] [[package]] @@ -7242,6 +7703,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustls-webpki" version = "0.103.14" @@ -7397,6 +7869,19 @@ dependencies = [ "zbus", ] +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.13.1", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + [[package]] name = "security-framework" version = "3.7.0" @@ -7515,16 +8000,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "serde_ignored" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115dffd5f3853e06e746965a20dcbae6ee747ae30b543d91b0e089668bb07798" -dependencies = [ - "serde", - "serde_core", -] - [[package]] name = "serde_json" version = "1.0.151" @@ -7603,19 +8078,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "serial2" version = "0.2.38" @@ -7638,6 +8100,17 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + [[package]] name = "sha1_smol" version = "1.0.1" @@ -7732,6 +8205,17 @@ dependencies = [ "signal-hook-registry", ] +[[package]] +name = "signal-hook-mio" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" +dependencies = [ + "libc", + "mio", + "signal-hook 0.3.18", +] + [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -8238,6 +8722,17 @@ dependencies = [ "objc", ] +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + [[package]] name = "tauri-winrt-notification" version = "0.7.3" @@ -8282,6 +8777,19 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "termina" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e" +dependencies = [ + "bitflags 2.13.1", + "parking_lot", + "rustix 1.1.4", + "signal-hook 0.3.18", + "windows-sys 0.61.2", +] + [[package]] name = "terminal_size" version = "0.2.6" @@ -8366,6 +8874,48 @@ dependencies = [ "zeroclawlabs", ] +[[package]] +name = "termwiz" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bitflags 2.13.1", + "fancy-regex 0.11.0", + "filedescriptor 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "finl_unicode 1.5.0", + "fixedbitset 0.4.2", + "hex", + "lazy_static", + "libc", + "log", + "memmem", + "nix 0.29.0", + "num-derive", + "num-traits", + "ordered-float 4.6.0", + "pest", + "pest_derive", + "phf 0.11.3", + "sha2 0.10.9", + "signal-hook 0.3.18", + "siphasher", + "terminfo", + "termios", + "thiserror 1.0.69", + "ucd-trie", + "unicode-segmentation", + "vtparse 0.6.2", + "wezterm-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wezterm-blob-leases 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wezterm-color-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wezterm-dynamic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wezterm-input-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", +] + [[package]] name = "termwiz" version = "0.24.0" @@ -8373,9 +8923,9 @@ source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d71 dependencies = [ "anyhow", "bitflags 2.13.1", - "fancy-regex", + "fancy-regex 0.14.0", "filedescriptor 0.8.3 (git+https://github.com/wezterm/wezterm.git)", - "finl_unicode", + "finl_unicode 1.3.0", "fixedbitset 0.4.2", "image", "libc", @@ -8396,15 +8946,15 @@ dependencies = [ "thiserror 1.0.69", "ucd-trie", "unicode-segmentation", - "vtparse", - "wezterm-bidi", - "wezterm-blob-leases", + "vtparse 0.7.0", + "wezterm-bidi 0.2.3 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-blob-leases 0.1.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-cell", "wezterm-char-props", - "wezterm-color-types", - "wezterm-dynamic", + "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-escape-parser", - "wezterm-input-types", + "wezterm-input-types 0.1.0 (git+https://github.com/wezterm/wezterm.git)", "wezterm-surface", "winapi", ] @@ -8479,10 +9029,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", + "libc", "num-conv", + "num_threads", "powerfmt", "serde_core", "time-core", + "time-macros", ] [[package]] @@ -8491,6 +9044,16 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -8578,13 +9141,24 @@ dependencies = [ "syn 3.0.3", ] +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls", + "rustls 0.23.43", "tokio", ] @@ -8620,11 +9194,11 @@ checksum = "8f72a05e828585856dacd553fba484c242c46e391fb0e58917c942ee9202915c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.23.43", "rustls-pki-types", "tokio", - "tokio-rustls", - "tungstenite", + "tokio-rustls 0.26.4", + "tungstenite 0.29.0", "webpki-roots 0.26.11", ] @@ -8881,9 +9455,25 @@ dependencies = [ "httparse", "log", "rand 0.9.5", - "rustls", + "rustls 0.23.43", "rustls-pki-types", - "sha1", + "sha1 0.10.7", + "thiserror 2.0.20", +] + +[[package]] +name = "tungstenite" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48ac77174b19c110a50ab2128b24215ac9cb40e0e12e093fb602d175c569d22" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.10.2", + "sha1 0.11.0", "thiserror 2.0.20", ] @@ -8997,6 +9587,17 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" +[[package]] +name = "unicode-truncate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" +dependencies = [ + "itertools 0.14.0", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "unicode-vo" version = "0.1.0" @@ -9031,12 +9632,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - [[package]] name = "untrusted" version = "0.9.0" @@ -9045,20 +9640,34 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.12.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", + "cookie_store", "flate2", "log", - "once_cell", - "rustls", + "percent-encoding", + "rustls 0.23.43", "rustls-pki-types", "serde", "serde_json", - "url", - "webpki-roots 0.26.11", + "ureq-proto", + "utf8-zero", + "webpki-roots 1.0.9", +] + +[[package]] +name = "ureq-proto" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86fd172ccca569e458f61b6bdd6220965a9ef36e672a6852953b51a0e1583be" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", ] [[package]] @@ -9139,6 +9748,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -9157,6 +9772,7 @@ version = "1.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cefc03fd367c0c6d4305de1b312cf00248c4114f4a0418ce6a6af769e3b0bd9" dependencies = [ + "atomic 0.6.1", "getrandom 0.4.3", "js-sys", "serde_core", @@ -9263,6 +9879,15 @@ dependencies = [ "serde", ] +[[package]] +name = "vtparse" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" +dependencies = [ + "utf8parse", +] + [[package]] name = "vtparse" version = "0.7.0" @@ -9543,13 +10168,36 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wezterm-bidi" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" +dependencies = [ + "log", + "wezterm-dynamic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "wezterm-bidi" version = "0.2.3" source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" dependencies = [ "log", - "wezterm-dynamic", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", +] + +[[package]] +name = "wezterm-blob-leases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" +dependencies = [ + "getrandom 0.3.4", + "mac_address", + "sha2 0.10.9", + "thiserror 1.0.69", + "uuid", ] [[package]] @@ -9568,17 +10216,17 @@ name = "wezterm-cell" version = "0.1.0" source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" dependencies = [ - "finl_unicode", + "finl_unicode 1.3.0", "image", "log", "ordered-float 4.6.0", "serde", "sha2 0.10.9", "thiserror 1.0.69", - "wezterm-blob-leases", + "wezterm-blob-leases 0.1.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-char-props", - "wezterm-color-types", - "wezterm-dynamic", + "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-escape-parser", ] @@ -9592,6 +10240,18 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "wezterm-color-types" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" +dependencies = [ + "csscolorparser", + "deltae", + "lazy_static", + "wezterm-dynamic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "wezterm-color-types" version = "0.3.0" @@ -9601,7 +10261,20 @@ dependencies = [ "deltae", "num-traits", "serde", - "wezterm-dynamic", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", +] + +[[package]] +name = "wezterm-dynamic" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" +dependencies = [ + "log", + "ordered-float 4.6.0", + "strsim", + "thiserror 1.0.69", + "wezterm-dynamic-derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -9613,7 +10286,18 @@ dependencies = [ "ordered-float 4.6.0", "strsim", "thiserror 2.0.20", - "wezterm-dynamic-derive", + "wezterm-dynamic-derive 0.1.1 (git+https://github.com/wezterm/wezterm.git)", +] + +[[package]] +name = "wezterm-dynamic-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -9644,14 +10328,27 @@ dependencies = [ "pest_derive", "sha2 0.10.9", "thiserror 2.0.20", - "vtparse", - "wezterm-blob-leases", - "wezterm-color-types", - "wezterm-dynamic", - "wezterm-input-types", + "vtparse 0.7.0", + "wezterm-blob-leases 0.1.1 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-input-types 0.1.0 (git+https://github.com/wezterm/wezterm.git)", "winapi", ] +[[package]] +name = "wezterm-input-types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" +dependencies = [ + "bitflags 1.3.2", + "euclid", + "lazy_static", + "serde", + "wezterm-dynamic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "wezterm-input-types" version = "0.1.0" @@ -9660,7 +10357,7 @@ dependencies = [ "bitflags 1.3.2", "euclid", "serde", - "wezterm-dynamic", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", ] [[package]] @@ -9669,7 +10366,7 @@ version = "0.4.0" dependencies = [ "anyhow", "async_ossl", - "base64 0.22.1", + "base64 0.23.1", "bitflags 2.13.1", "camino", "dirs-next", @@ -9698,19 +10395,19 @@ version = "0.1.0" source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" dependencies = [ "bitflags 2.13.1", - "fancy-regex", - "finl_unicode", + "fancy-regex 0.14.0", + "finl_unicode 1.3.0", "fixedbitset 0.4.2", "ordered-float 4.6.0", "siphasher", "unicode-segmentation", - "wezterm-bidi", + "wezterm-bidi 0.2.3 (git+https://github.com/wezterm/wezterm.git)", "wezterm-cell", "wezterm-char-props", - "wezterm-color-types", - "wezterm-dynamic", + "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-escape-parser", - "wezterm-input-types", + "wezterm-input-types 0.1.0 (git+https://github.com/wezterm/wezterm.git)", ] [[package]] @@ -9722,24 +10419,24 @@ dependencies = [ "bitflags 1.3.2", "csscolorparser", "downcast-rs", - "finl_unicode", + "finl_unicode 1.3.0", "hex", "humansize", "image", "lazy_static", "log", - "lru", + "lru 0.16.4", "miniz_oxide 0.7.4", "num-traits", "ordered-float 4.6.0", "serde", "terminfo", - "termwiz", + "termwiz 0.24.0", "unicode-normalization", "url", - "wezterm-bidi", + "wezterm-bidi 0.2.3 (git+https://github.com/wezterm/wezterm.git)", "wezterm-cell", - "wezterm-dynamic", + "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-escape-parser", "wezterm-surface", ] @@ -10669,6 +11366,16 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix 1.1.4", +] + [[package]] name = "xcb" version = "1.7.1" @@ -10965,11 +11672,22 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" +[[package]] +name = "zeroclaw-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ad1a70989d92e28d626d4da465c463820707662a287826f97037ea69f7483a2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "zeroclawlabs" -version = "0.5.9" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b925ca7c816d84b51193f3b8106a7c829c8c6675c82b9ebcaf543aa6e3b4049" +checksum = "b0e1c353ccd02bd341f12c3f8408caa0ba443b4458a7216b93d56a19e94953eb" dependencies = [ "aardvark-sys", "anyhow", @@ -10984,42 +11702,50 @@ dependencies = [ "clap_complete", "console", "cron", + "crossterm", "dialoguer", "directories", + "flate2", "futures-util", "glob", "hex", "hmac", "hostname", "http-body-util", + "hyper", + "hyper-util", "image", "indicatif", "lettre", "libc", + "lru 0.16.4", "mail-parser", "mime_guess", "nanohtml2text", "parking_lot", "portable-atomic", "rand 0.10.2", + "ratatui", "regex", "reqwest", "ring", + "rumqttc", "rusqlite", "rust-embed", - "rustls", + "rustls 0.23.43", + "rustls-pemfile", "rustls-pki-types", "schemars", "serde", - "serde_ignored", "serde_json", - "serde_yaml", "sha2 0.10.9", "shellexpand", + "tar", "tempfile", "thiserror 2.0.20", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.4", + "tokio-socks", "tokio-stream", "tokio-tungstenite", "tokio-util", @@ -11032,6 +11758,7 @@ dependencies = [ "uuid", "webpki-roots 1.0.9", "which", + "zeroclaw-macros", "zip", ] @@ -11140,33 +11867,14 @@ dependencies = [ "indexmap", "memchr", "typed-path", - "zopfli", ] -[[package]] -name = "zlib-rs" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" - [[package]] name = "zmij" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" -[[package]] -name = "zopfli" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" -dependencies = [ - "bumpalo", - "crc32fast", - "log", - "simd-adler32", -] - [[package]] name = "zune-core" version = "0.4.12" diff --git a/Cargo.toml b/Cargo.toml index c4a62e5..f2feca6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,9 +26,9 @@ keywords = ["terminal", "gpui"] [workspace.dependencies] anyhow = "1" -async-tungstenite = "0.34" +async-tungstenite = "0.35" atomic-write-file = "0.3" -base64 = "0.22" +base64 = "0.23" bitflags = "2" camino = "1" core-text = "=22.0.0" @@ -40,7 +40,7 @@ futures = "0.3" gethostname = "1.1" hex = { version = "0.4", features = ["std"] } home = "0.5" -itertools = "0.14" +itertools = "0.15" libc = "0.2" libssh-rs = "0.3.6" log = "0.4" @@ -53,6 +53,7 @@ polling = "3" rand = "0.10" regex = "1" regex-automata = "0.4" +# Keep aligned with zeroclawlabs: libsqlite3-sys permits only one linked version. rusqlite = { version = "0.37", features = ["bundled"] } rust-i18n = "4.0.0" rust-embed = "8" @@ -77,11 +78,11 @@ thiserror = "2" unicode-width = "0.2" url = "2" urlencoding = "2" -ureq = { version = "2.12", default-features = true, features = ["tls", "json"] } +ureq = { version = "3.4", features = ["json"] } unicode-segmentation = "1.12.0" vte = { version = "0.15", default-features = false } windows = "0.62" -windows-sys = "0.62" +windows-sys = "0.61" # GPUI Kit components pin this GPUI snapshot; upgrade these dependencies together. # Keep the existing crate names via aliases so application imports stay stable. diff --git a/crates/alacritty_terminal/Cargo.toml b/crates/alacritty_terminal/Cargo.toml index 2c4e67a..5fd640f 100644 --- a/crates/alacritty_terminal/Cargo.toml +++ b/crates/alacritty_terminal/Cargo.toml @@ -15,7 +15,7 @@ default = ["serde"] serde = ["dep:serde", "bitflags/serde", "vte/serde"] [dependencies] -base64 = "0.22.0" +base64 = "0.23" bitflags = "2.4.1" home = "0.5.5" libc = "0.2" @@ -35,7 +35,7 @@ signal-hook = "0.4.3" [target.'cfg(windows)'.dependencies] piper = "0.2.1" miow = "0.6.0" -windows-sys = { version = "0.59.0", features = [ +windows-sys = { version = "0.61", features = [ "Win32_System_Console", "Win32_Foundation", "Win32_Security", diff --git a/crates/alacritty_terminal/src/tty/windows/child.rs b/crates/alacritty_terminal/src/tty/windows/child.rs index 91e9c19..c33abd4 100644 --- a/crates/alacritty_terminal/src/tty/windows/child.rs +++ b/crates/alacritty_terminal/src/tty/windows/child.rs @@ -17,7 +17,7 @@ use polling::{ os::iocp::{CompletionPacket, PollerIocpExt}, }; use windows_sys::Win32::{ - Foundation::{BOOLEAN, FALSE, HANDLE}, + Foundation::{FALSE, HANDLE}, System::Threading::{ GetExitCodeProcess, GetProcessId, INFINITE, RegisterWaitForSingleObject, UnregisterWait, WT_EXECUTEINWAITTHREAD, WT_EXECUTEONLYONCE, @@ -38,8 +38,8 @@ struct ChildExitSender { } /// WinAPI callback to run when child process exits. -extern "system" fn child_exit_callback(ctx: *mut c_void, timed_out: BOOLEAN) { - if timed_out != 0 { +unsafe extern "system" fn child_exit_callback(ctx: *mut c_void, timed_out: bool) { + if timed_out { return; } diff --git a/crates/termua_zeroclaw/Cargo.toml b/crates/termua_zeroclaw/Cargo.toml index e199c64..f0e5ce0 100644 --- a/crates/termua_zeroclaw/Cargo.toml +++ b/crates/termua_zeroclaw/Cargo.toml @@ -8,9 +8,9 @@ license.workspace = true anyhow.workspace = true tokio = { version = "1.50", features = ["rt", "time", "io-util", "net", "sync", "fs"] } -zeroclaw = { package = "zeroclawlabs", version = "0.5.7", default-features = false } +zeroclaw = { package = "zeroclawlabs", version = "0.6.9", default-features = false } serde.workspace = true serde_json.workspace = true url.workspace = true -ureq = { version = "2.12", default-features = true, features = ["tls", "json"] } +ureq.workspace = true sysinfo.workspace = true diff --git a/crates/termua_zeroclaw/src/lib.rs b/crates/termua_zeroclaw/src/lib.rs index ce93c0e..81a2635 100644 --- a/crates/termua_zeroclaw/src/lib.rs +++ b/crates/termua_zeroclaw/src/lib.rs @@ -301,22 +301,23 @@ impl Client { .context("API key is required to fetch models")?; let timeout_secs = options.provider_timeout_secs.unwrap_or(30); - let agent = ureq::AgentBuilder::new() - .timeout(Duration::from_secs(timeout_secs)) - .build(); + let agent: ureq::Agent = ureq::Agent::config_builder() + .timeout_global(Some(Duration::from_secs(timeout_secs))) + .build() + .into(); let models_url = models_url_from_base(&api_url)?; let mut req = agent .get(models_url.as_str()) - .set("accept", "application/json") - .set("authorization", &format!("Bearer {api_key}")); + .header("accept", "application/json") + .header("authorization", &format!("Bearer {api_key}")); for (k, v) in options.extra_headers.iter() { - req = req.set(k, v); + req = req.header(k, v); } - let resp = req.call().context("fetch /models")?; - let v: serde_json::Value = resp.into_json().context("parse /models json")?; + let mut resp = req.call().context("fetch /models")?; + let v: serde_json::Value = resp.body_mut().read_json().context("parse /models json")?; fn extract_ids(arr: &[serde_json::Value]) -> Vec { let mut out = Vec::new(); @@ -452,10 +453,10 @@ impl Client { let mut base = endpoint_base_url(endpoint); base.push_str("health"); - let resp = ureq::get(&base).set("accept", "application/json").call(); + let resp = ureq::get(&base).header("accept", "application/json").call(); match resp { Ok(r) => Ok(r.status() == 200), - Err(ureq::Error::Status(code, _)) => Ok(code == 200), + Err(ureq::Error::StatusCode(_)) => Ok(false), Err(err) => Err(anyhow::anyhow!(err)), } } @@ -467,7 +468,7 @@ impl Client { base.push_str("admin/shutdown"); let resp = ureq::post(&base) - .set("accept", "application/json") + .header("accept", "application/json") .send_json(serde_json::json!({})) .context("POST /admin/shutdown")?; if resp.status() != 200 { @@ -499,7 +500,7 @@ impl Client { return; }; rt.block_on(async move { - let _ = zeroclaw::gateway::run_gateway(&host, port, config).await; + let _ = zeroclaw::gateway::run_gateway(&host, port, config, None).await; }); }) .context("spawn zeroclaw gateway thread")?; diff --git a/termua/src/update.rs b/termua/src/update.rs index 51fa829..74a729b 100644 --- a/termua/src/update.rs +++ b/termua/src/update.rs @@ -122,11 +122,13 @@ fn highest_release_tag(body: &str) -> Option { } pub(crate) fn check_latest() -> anyhow::Result { - let response = ureq::get(RELEASES_API_URL) - .set("User-Agent", concat!("termua/", env!("CARGO_PKG_VERSION"))) - .timeout(Duration::from_secs(10)) + let mut response = ureq::get(RELEASES_API_URL) + .header("User-Agent", concat!("termua/", env!("CARGO_PKG_VERSION"))) + .config() + .timeout_global(Some(Duration::from_secs(10))) + .build() .call()?; - let body = response.into_string()?; + let body = response.body_mut().read_to_string()?; let tag = highest_release_tag(&body) .ok_or_else(|| anyhow::anyhow!("GitHub response has no versioned release tag"))?; if is_newer_version(env!("CARGO_PKG_VERSION"), &tag) { From 3f37881e1e150b9a01ac23a5696ed79287b38d6c Mon Sep 17 00:00:00 2001 From: iamazy Date: Thu, 24 Sep 2026 05:03:00 +0800 Subject: [PATCH 6/6] Update Cargo.lock --- Cargo.lock | 62 +++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6003ec9..6ddad2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -597,7 +597,7 @@ dependencies = [ [[package]] name = "async_ossl" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "async-io", "openssl", @@ -2114,7 +2114,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2390,7 +2390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2526,10 +2526,10 @@ dependencies = [ [[package]] name = "filedescriptor" version = "0.8.3" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "libc", - "thiserror 1.0.69", + "thiserror 2.0.20", "windows-sys 0.61.2", ] @@ -5509,7 +5509,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -6615,7 +6615,7 @@ dependencies = [ [[package]] name = "portable-pty" version = "0.9.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -6628,7 +6628,7 @@ dependencies = [ "serial2", "shared_library", "shell-words", - "winapi", + "windows-sys 0.61.2", "winreg 0.10.1", ] @@ -6876,7 +6876,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -7615,7 +7615,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -8754,7 +8754,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix 1.1.4", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -8919,7 +8919,7 @@ dependencies = [ [[package]] name = "termwiz" version = "0.24.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -8943,7 +8943,7 @@ dependencies = [ "siphasher", "terminfo", "termios", - "thiserror 1.0.69", + "thiserror 2.0.20", "ucd-trie", "unicode-segmentation", "vtparse 0.7.0", @@ -8956,7 +8956,7 @@ dependencies = [ "wezterm-escape-parser", "wezterm-input-types 0.1.0 (git+https://github.com/wezterm/wezterm.git)", "wezterm-surface", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -9891,7 +9891,7 @@ dependencies = [ [[package]] name = "vtparse" version = "0.7.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "utf8parse", ] @@ -10181,7 +10181,7 @@ dependencies = [ [[package]] name = "wezterm-bidi" version = "0.2.3" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "log", "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", @@ -10203,18 +10203,18 @@ dependencies = [ [[package]] name = "wezterm-blob-leases" version = "0.1.1" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "getrandom 0.3.4", "sha2 0.10.9", - "thiserror 1.0.69", + "thiserror 2.0.20", "uuid", ] [[package]] name = "wezterm-cell" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "finl_unicode 1.3.0", "image", @@ -10222,7 +10222,7 @@ dependencies = [ "ordered-float 4.6.0", "serde", "sha2 0.10.9", - "thiserror 1.0.69", + "thiserror 2.0.20", "wezterm-blob-leases 0.1.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-char-props", "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", @@ -10233,7 +10233,7 @@ dependencies = [ [[package]] name = "wezterm-char-props" version = "0.1.3" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "phf 0.11.3", "serde", @@ -10255,7 +10255,7 @@ dependencies = [ [[package]] name = "wezterm-color-types" version = "0.3.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "csscolorparser", "deltae", @@ -10280,7 +10280,7 @@ dependencies = [ [[package]] name = "wezterm-dynamic" version = "0.2.1" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "log", "ordered-float 4.6.0", @@ -10303,7 +10303,7 @@ dependencies = [ [[package]] name = "wezterm-dynamic-derive" version = "0.1.1" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "proc-macro2", "quote", @@ -10313,7 +10313,7 @@ dependencies = [ [[package]] name = "wezterm-escape-parser" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "base64 0.22.1", "bitflags 2.13.1", @@ -10333,7 +10333,7 @@ dependencies = [ "wezterm-color-types 0.3.0 (git+https://github.com/wezterm/wezterm.git)", "wezterm-dynamic 0.2.1 (git+https://github.com/wezterm/wezterm.git)", "wezterm-input-types 0.1.0 (git+https://github.com/wezterm/wezterm.git)", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -10352,7 +10352,7 @@ dependencies = [ [[package]] name = "wezterm-input-types" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "bitflags 1.3.2", "euclid", @@ -10392,7 +10392,7 @@ dependencies = [ [[package]] name = "wezterm-surface" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "bitflags 2.13.1", "fancy-regex 0.14.0", @@ -10413,7 +10413,7 @@ dependencies = [ [[package]] name = "wezterm-term" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -10444,7 +10444,7 @@ dependencies = [ [[package]] name = "wezterm-uds" version = "0.1.0" -source = "git+https://github.com/wezterm/wezterm.git#770d8e1a7519a9a698090cd7d717d0c64aa0a755" +source = "git+https://github.com/wezterm/wezterm.git#b09b56c29c1e367e598b60ca266e2cc9038751e0" dependencies = [ "async-io", "uds_windows", @@ -10659,7 +10659,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]]