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:
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user