Port upstream UI polish and refresh dependencies

Bring over selected Warp UI improvements: selectable Thought text, message
timestamps, animated theme backgrounds, editable New Window shortcuts,
safer tab renaming and restoration, and text/font/discard crash fixes.

Match upstream orchestration pill geometry and tooltips, and replace expanded
subagent previews with compact links that retain live status and conversation
navigation for launches and follow-up messages.

Include the pending Cargo.lock dependency refresh.

Adapted upstream PRs: #15948, #15884, #15691, #14618, #15772, #15705,
#15605, #14895, #15996, #15771, #14893, and #14603.
This commit is contained in:
2026-09-17 23:44:47 -05:00
parent f084548b34
commit a29ee94d84
46 changed files with 2529 additions and 1479 deletions
-1
View File
@@ -383,7 +383,6 @@ pub fn custom_tag_to_keystroke(custom: CustomTag) -> Option<Keystroke> {
}
}
// This is one of the app's hardcoded keybindings.
CustomAction::AddWindow => Keystroke::parse(cmd_or_ctrl_shift("n")).ok(),
CustomAction::ToggleGalaxyDrive => {
if OperatingSystem::get().is_mac() {
+8
View File
@@ -2,6 +2,14 @@ use std::ops::Sub;
use chrono::{DateTime, Duration, Local, Utc};
pub fn format_message_timestamp(datetime: &DateTime<Local>) -> String {
datetime.format("%-m/%-d at %-I:%M %p").to_string()
}
pub fn is_trustworthy_message_timestamp(datetime: &DateTime<Local>) -> bool {
datetime != &DateTime::<Local>::default()
}
// Some conversion ratios for time units.
const SEC_TO_MS: f64 = 1000.;
const MIN_TO_MS: f64 = 60. * SEC_TO_MS;
+21
View File
@@ -1,5 +1,26 @@
use chrono::TimeZone;
use super::*;
#[test]
fn format_message_timestamp_uses_friendly_local_time() {
let morning = Local.with_ymd_and_hms(2026, 8, 10, 9, 2, 0).unwrap();
let noon = Local.with_ymd_and_hms(2026, 12, 31, 12, 45, 0).unwrap();
let midnight = Local.with_ymd_and_hms(2026, 12, 31, 0, 5, 0).unwrap();
assert_eq!(format_message_timestamp(&morning), "8/10 at 9:02 AM");
assert_eq!(format_message_timestamp(&noon), "12/31 at 12:45 PM");
assert_eq!(format_message_timestamp(&midnight), "12/31 at 12:05 AM");
}
#[test]
fn default_message_timestamp_is_not_trustworthy() {
assert!(!is_trustworthy_message_timestamp(&DateTime::default()));
assert!(is_trustworthy_message_timestamp(
&Local.with_ymd_and_hms(2026, 8, 10, 9, 22, 0).unwrap()
));
}
#[test]
fn test_format_sigfigs() {
assert_eq!(format_sigfigs(0.000456, 2,), "0.00046");