add failed message

This commit is contained in:
2026-03-28 15:25:32 +07:00
parent d36364d60d
commit a81022bb0b
3 changed files with 235 additions and 182 deletions

342
Cargo.lock generated
View File

@@ -612,9 +612,9 @@ dependencies = [
[[package]]
name = "aws-lc-sys"
version = "0.39.0"
version = "0.39.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a"
checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399"
dependencies = [
"cc",
"cmake",
@@ -860,6 +860,15 @@ version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "bzip2"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c"
dependencies = [
"libbz2-rs-sys",
]
[[package]]
name = "calloop"
version = "0.14.4"
@@ -914,9 +923,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.57"
version = "1.2.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423"
checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -1060,12 +1069,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "circular-buffer"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c638459986b83c2b885179bd4ea6a2cbb05697b001501a56adb3a3d230803b"
[[package]]
name = "clang-sys"
version = "1.8.1"
@@ -1119,9 +1122,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]]
name = "cmake"
version = "0.1.57"
version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d"
checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
dependencies = [
"cc",
]
@@ -1200,7 +1203,7 @@ dependencies = [
[[package]]
name = "collections"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"indexmap",
"rustc-hash 2.1.1",
@@ -1263,6 +1266,7 @@ version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7"
dependencies = [
"bzip2",
"compression-core",
"deflate64",
"flate2",
@@ -1522,7 +1526,7 @@ dependencies = [
"rangemap",
"rustc-hash 2.1.1",
"self_cell",
"skrifa 0.40.0",
"skrifa",
"smol_str",
"swash",
"sys-locale",
@@ -1659,7 +1663,7 @@ dependencies = [
[[package]]
name = "derive_refineable"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"proc-macro2",
"quote",
@@ -2192,15 +2196,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
name = "font-types"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5"
dependencies = [
"bytemuck",
]
[[package]]
name = "font-types"
version = "0.11.1"
@@ -2522,6 +2517,16 @@ dependencies = [
"wasip3",
]
[[package]]
name = "gif"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b"
dependencies = [
"color_quant",
"weezl",
]
[[package]]
name = "gif"
version = "0.14.1"
@@ -2638,7 +2643,7 @@ dependencies = [
[[package]]
name = "gpui"
version = "0.2.2"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"async-channel 2.5.0",
@@ -2648,7 +2653,6 @@ dependencies = [
"block",
"cbindgen",
"chrono",
"circular-buffer",
"cocoa 0.26.0",
"cocoa-foundation 0.2.0",
"collections",
@@ -2676,7 +2680,7 @@ dependencies = [
"mach2",
"media",
"metal",
"naga 29.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"naga 29.0.1",
"num_cpus",
"objc",
"parking",
@@ -2689,6 +2693,7 @@ dependencies = [
"rand 0.9.2",
"raw-window-handle",
"refineable",
"regex",
"resvg",
"scheduler",
"schemars",
@@ -2703,6 +2708,7 @@ dependencies = [
"sum_tree",
"taffy",
"thiserror 2.0.18",
"ttf-parser",
"url",
"usvg",
"util_macros",
@@ -2717,7 +2723,7 @@ dependencies = [
[[package]]
name = "gpui_linux"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"as-raw-xcb-connection",
@@ -2765,7 +2771,7 @@ dependencies = [
[[package]]
name = "gpui_macos"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"async-task",
@@ -2807,7 +2813,7 @@ dependencies = [
[[package]]
name = "gpui_macros"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"heck 0.5.0",
"proc-macro2",
@@ -2818,7 +2824,7 @@ dependencies = [
[[package]]
name = "gpui_platform"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"console_error_panic_hook",
"gpui",
@@ -2831,7 +2837,7 @@ dependencies = [
[[package]]
name = "gpui_tokio"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"gpui",
@@ -2842,7 +2848,7 @@ dependencies = [
[[package]]
name = "gpui_util"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"log",
@@ -2851,7 +2857,7 @@ dependencies = [
[[package]]
name = "gpui_web"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"console_error_panic_hook",
@@ -2875,7 +2881,7 @@ dependencies = [
[[package]]
name = "gpui_wgpu"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"bytemuck",
@@ -2903,7 +2909,7 @@ dependencies = [
[[package]]
name = "gpui_windows"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"collections",
@@ -2971,7 +2977,7 @@ dependencies = [
"bitflags 2.11.0",
"bytemuck",
"core_maths",
"read-fonts 0.37.0",
"read-fonts",
"smallvec",
]
@@ -3165,7 +3171,7 @@ dependencies = [
[[package]]
name = "http_client"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"async-compression",
@@ -3190,7 +3196,7 @@ dependencies = [
[[package]]
name = "http_client_tls"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"rustls",
"rustls-platform-verifier",
@@ -3407,7 +3413,7 @@ dependencies = [
"byteorder-lite",
"color_quant",
"exr",
"gif",
"gif 0.14.1",
"image-webp",
"moxcms",
"num-traits",
@@ -3417,8 +3423,8 @@ dependencies = [
"rayon",
"rgb",
"tiff",
"zune-core",
"zune-jpeg",
"zune-core 0.5.1",
"zune-jpeg 0.5.15",
]
[[package]]
@@ -3666,10 +3672,12 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.91"
version = "0.3.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995"
dependencies = [
"cfg-if",
"futures-util",
"once_cell",
"wasm-bindgen",
]
@@ -3744,6 +3752,12 @@ version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
[[package]]
name = "libbz2-rs-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7"
[[package]]
name = "libc"
version = "0.2.183"
@@ -4022,7 +4036,7 @@ dependencies = [
[[package]]
name = "media"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"bindgen",
@@ -4116,9 +4130,9 @@ dependencies = [
[[package]]
name = "mio"
version = "1.1.1"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
dependencies = [
"libc",
"wasi",
@@ -4135,31 +4149,6 @@ dependencies = [
"pxfm",
]
[[package]]
name = "naga"
version = "29.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b4372fed0bd362d646d01b6926df0e837859ccc522fed720c395e0460f29c8"
dependencies = [
"arrayvec",
"bit-set",
"bitflags 2.11.0",
"cfg-if",
"cfg_aliases",
"codespan-reporting",
"half",
"hashbrown 0.16.1",
"hexf-parse",
"indexmap",
"libm",
"log",
"num-traits",
"once_cell",
"rustc-hash 1.1.0",
"thiserror 2.0.18",
"unicode-ident",
]
[[package]]
name = "naga"
version = "29.0.0"
@@ -4185,6 +4174,31 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "naga"
version = "29.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2630921705b9b01dcdd0b6864b9562ca3c1951eecd0f0c4f5f04f61e412647"
dependencies = [
"arrayvec",
"bit-set",
"bitflags 2.11.0",
"cfg-if",
"cfg_aliases",
"codespan-reporting",
"half",
"hashbrown 0.16.1",
"hexf-parse",
"indexmap",
"libm",
"log",
"num-traits",
"once_cell",
"rustc-hash 1.1.0",
"thiserror 2.0.18",
"unicode-ident",
]
[[package]]
name = "nanorand"
version = "0.7.0"
@@ -4273,7 +4287,7 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
[[package]]
name = "nostr"
version = "0.44.1"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"aes",
"base64",
@@ -4297,7 +4311,7 @@ dependencies = [
[[package]]
name = "nostr-blossom"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"base64",
"nostr",
@@ -4308,7 +4322,7 @@ dependencies = [
[[package]]
name = "nostr-connect"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"async-utility",
"futures-core",
@@ -4321,7 +4335,7 @@ dependencies = [
[[package]]
name = "nostr-database"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"btreecap",
"flatbuffers",
@@ -4331,7 +4345,7 @@ dependencies = [
[[package]]
name = "nostr-gossip"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"nostr",
]
@@ -4339,7 +4353,7 @@ dependencies = [
[[package]]
name = "nostr-gossip-memory"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"indexmap",
"lru",
@@ -4351,7 +4365,7 @@ dependencies = [
[[package]]
name = "nostr-lmdb"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"async-utility",
"flume 0.12.0",
@@ -4365,7 +4379,7 @@ dependencies = [
[[package]]
name = "nostr-memory"
version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"btreecap",
"nostr",
@@ -4376,7 +4390,7 @@ dependencies = [
[[package]]
name = "nostr-sdk"
version = "0.44.1"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c"
source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [
"async-utility",
"async-wsocket",
@@ -4717,9 +4731,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "ordered-float"
version = "5.1.0"
version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d"
checksum = "0218004a4aae742209bee9c3cef05672f6b2708be36a50add8eb613b1f2a4008"
dependencies = [
"num-traits",
]
@@ -4850,7 +4864,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "perf"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"collections",
"serde",
@@ -5490,16 +5504,6 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "read-fonts"
version = "0.35.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358"
dependencies = [
"bytemuck",
"font-types 0.10.1",
]
[[package]]
name = "read-fonts"
version = "0.37.0"
@@ -5508,7 +5512,7 @@ checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5"
dependencies = [
"bytemuck",
"core_maths",
"font-types 0.11.1",
"font-types",
]
[[package]]
@@ -5572,7 +5576,7 @@ dependencies = [
[[package]]
name = "refineable"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"derive_refineable",
]
@@ -5671,7 +5675,7 @@ dependencies = [
[[package]]
name = "reqwest_client"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"bytes",
@@ -5692,12 +5696,15 @@ version = "0.45.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43"
dependencies = [
"gif 0.13.3",
"image-webp",
"log",
"pico-args",
"rgb",
"svgtypes",
"tiny-skia",
"usvg",
"zune-jpeg 0.4.21",
]
[[package]]
@@ -5726,7 +5733,7 @@ dependencies = [
[[package]]
name = "rope"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"heapless",
"log",
@@ -5988,7 +5995,7 @@ dependencies = [
[[package]]
name = "scheduler"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"async-task",
"backtrace",
@@ -6337,9 +6344,9 @@ dependencies = [
[[package]]
name = "simd-adler32"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]]
name = "simd_cesu8"
@@ -6381,16 +6388,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
[[package]]
name = "skrifa"
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841"
dependencies = [
"bytemuck",
"read-fonts 0.35.0",
]
[[package]]
name = "skrifa"
version = "0.40.0"
@@ -6398,7 +6395,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac"
dependencies = [
"bytemuck",
"read-fonts 0.37.0",
"read-fonts",
]
[[package]]
@@ -6600,7 +6597,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "sum_tree"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"heapless",
"log",
@@ -6611,15 +6608,15 @@ dependencies = [
[[package]]
name = "sval"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1aaf178a50bbdd86043fce9bf0a5867007d9b382db89d1c96ccae4601ff1ff9"
checksum = "2eb9318255ebd817902d7e279d8f8e39b35b1b9954decd5eb9ea0e30e5fd2b6a"
[[package]]
name = "sval_buffer"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f89273e48f03807ebf51c4d81c52f28d35ffa18a593edf97e041b52de143df89"
checksum = "12571299185e653fdb0fbfe36cd7f6529d39d4e747a60b15a3f34574b7b97c61"
dependencies = [
"sval",
"sval_ref",
@@ -6627,18 +6624,18 @@ dependencies = [
[[package]]
name = "sval_dynamic"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0430f4e18e7eba21a49d10d25a8dec3ce0e044af40b162347e99a8e3c3ced864"
checksum = "39526f24e997706c0de7f03fb7371f7f5638b66a504ded508e20ad173d0a3677"
dependencies = [
"sval",
]
[[package]]
name = "sval_fmt"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835f51b9d7331b9d7fc48fc716c02306fa88c4a076b1573531910c91a525882d"
checksum = "933dd3bb26965d682280fcc49400ac2a05036f4ee1e6dbd61bf8402d5a5c3a54"
dependencies = [
"itoa",
"ryu",
@@ -6647,9 +6644,9 @@ dependencies = [
[[package]]
name = "sval_json"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13cbfe3ef406ee2366e7e8ab3678426362085fa9eaedf28cb878a967159dced3"
checksum = "a0cda08f6d5c9948024a6551077557b1fdcc3880ff2f20ae839667d2ec2d87ed"
dependencies = [
"itoa",
"ryu",
@@ -6658,9 +6655,9 @@ dependencies = [
[[package]]
name = "sval_nested"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b20358af4af787c34321a86618c3cae12eabdd0e9df22cd9dd2c6834214c518"
checksum = "88d49d5e6c1f9fd0e53515819b03a97ca4eb1bff5c8ee097c43391c09ecfb19f"
dependencies = [
"sval",
"sval_buffer",
@@ -6669,18 +6666,18 @@ dependencies = [
[[package]]
name = "sval_ref"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5e500f8eb2efa84f75e7090f7fc43f621b9f8b6cde571c635b3855f97b332a"
checksum = "14f876c5a78405375b4e19cbb9554407513b59c93dea12dc6a4af4e1d30899ca"
dependencies = [
"sval",
]
[[package]]
name = "sval_serde"
version = "2.17.0"
version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2032ae39b11dcc6c18d5fbc50a661ea191cac96484c59ccf49b002261ca2c1"
checksum = "5f9ccd3b7f7200239a655e517dd3fd48d960b9111ad24bd6a5e055bef17607c7"
dependencies = [
"serde_core",
"sval",
@@ -6705,11 +6702,11 @@ dependencies = [
[[package]]
name = "swash"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a"
checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64"
dependencies = [
"skrifa 0.37.0",
"skrifa",
"yazi",
"zeno",
]
@@ -6935,7 +6932,7 @@ dependencies = [
"half",
"quick-error",
"weezl",
"zune-jpeg",
"zune-jpeg 0.5.15",
]
[[package]]
@@ -7451,9 +7448,9 @@ checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee"
[[package]]
name = "unicode-segmentation"
version = "1.13.1"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da36089a805484bcccfffe0739803392c8298778a2d2f09febf76fac5ad9025b"
checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
[[package]]
name = "unicode-vo"
@@ -7485,9 +7482,9 @@ dependencies = [
[[package]]
name = "universal-time"
version = "0.2.0"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b35da41b69caac5d25e3eba1ca0b7e9ac859a23af369d2e36a37dbb7defbc93"
checksum = "f942cacf37a673350e8f252dff4691fb8e525a5fff6e1f2c4b6c2f3b8349248d"
[[package]]
name = "untrusted"
@@ -7562,7 +7559,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "util"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"async-fs",
@@ -7601,7 +7598,7 @@ dependencies = [
[[package]]
name = "util_macros"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"perf",
"quote",
@@ -7610,9 +7607,9 @@ dependencies = [
[[package]]
name = "uuid"
version = "1.22.0"
version = "1.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37"
checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
dependencies = [
"getrandom 0.4.2",
"js-sys",
@@ -7757,9 +7754,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
version = "0.2.114"
version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a"
dependencies = [
"cfg-if",
"once_cell",
@@ -7770,23 +7767,19 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.64"
version = "0.4.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8"
checksum = "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0"
dependencies = [
"cfg-if",
"futures-util",
"js-sys",
"once_cell",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.114"
version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -7794,9 +7787,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.114"
version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -7807,9 +7800,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.114"
version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93"
dependencies = [
"unicode-ident",
]
@@ -7973,9 +7966,9 @@ dependencies = [
[[package]]
name = "web-sys"
version = "0.3.91"
version = "0.3.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9"
checksum = "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -8063,7 +8056,7 @@ dependencies = [
"hashbrown 0.16.1",
"js-sys",
"log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)",
"naga 29.0.0",
"parking_lot",
"portable-atomic",
"profiling",
@@ -8093,7 +8086,7 @@ dependencies = [
"hashbrown 0.16.1",
"indexmap",
"log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)",
"naga 29.0.0",
"once_cell",
"parking_lot",
"portable-atomic",
@@ -8158,7 +8151,7 @@ dependencies = [
"libc",
"libloading",
"log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)",
"naga 29.0.0",
"ndk-sys",
"objc2",
"objc2-core-foundation",
@@ -8191,7 +8184,7 @@ name = "wgpu-naga-bridge"
version = "29.0.0"
source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea747f8e1ac810efdb6dcd49a514575"
dependencies = [
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)",
"naga 29.0.0",
"wgpu-types",
]
@@ -9422,7 +9415,7 @@ dependencies = [
[[package]]
name = "zlog"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"anyhow",
"chrono",
@@ -9439,7 +9432,7 @@ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
[[package]]
name = "ztracing"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [
"tracing",
"tracing-subscriber",
@@ -9450,7 +9443,13 @@ dependencies = [
[[package]]
name = "ztracing_macro"
version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4"
source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
[[package]]
name = "zune-core"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
[[package]]
name = "zune-core"
@@ -9469,11 +9468,20 @@ dependencies = [
[[package]]
name = "zune-jpeg"
version = "0.5.14"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7a1c0af6e5d8d1363f4994b7a091ccf963d8b694f7da5b0b9cceb82da2c0a6"
checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
dependencies = [
"zune-core",
"zune-core 0.4.12",
]
[[package]]
name = "zune-jpeg"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
dependencies = [
"zune-core 0.5.1",
]
[[package]]

View File

@@ -1,5 +1,5 @@
use std::cmp::Reverse;
use std::collections::{HashMap, HashSet};
use std::collections::{BTreeSet, HashMap, HashSet};
use std::hash::{DefaultHasher, Hash, Hasher};
use std::sync::Arc;
use std::sync::atomic::{AtomicBool, Ordering};
@@ -55,7 +55,24 @@ enum Signal {
/// Eose received from relay pool
Eose,
/// An error occurred
Error(SharedString),
Error(FailedMessage),
}
impl Signal {
pub fn message(gift_wrap: EventId, rumor: UnsignedEvent) -> Self {
Self::Message(NewMessage::new(gift_wrap, rumor))
}
pub fn eose() -> Self {
Self::Eose
}
pub fn error<T>(event: &Event, reason: T) -> Self
where
T: Into<SharedString>,
{
Self::Error(FailedMessage::new(event, reason))
}
}
/// Chat Registry
@@ -64,6 +81,9 @@ pub struct ChatRegistry {
/// Chat rooms
rooms: Vec<Entity<Room>>,
/// Events that failed to unwrap for any reason
trashes: Entity<BTreeSet<FailedMessage>>,
/// Tracking events seen on which relays in the current session
seens: Arc<RwLock<HashMap<EventId, HashSet<RelayUrl>>>>,
@@ -128,6 +148,7 @@ impl ChatRegistry {
Self {
rooms: vec![],
trashes: cx.new(|_| BTreeSet::default()),
seens: Arc::new(RwLock::new(HashMap::default())),
tracking_flag: Arc::new(AtomicBool::new(false)),
signal_rx: rx,
@@ -144,6 +165,7 @@ impl ChatRegistry {
let signer = nostr.read(cx).signer();
let status = self.tracking_flag.clone();
let seens = self.seens.clone();
let trashes = self.trashes.downgrade();
let initialized_at = Timestamp::now();
let sub_id1 = SubscriptionId::new(DEVICE_GIFTWRAP);
@@ -185,28 +207,30 @@ impl ChatRegistry {
match extract_rumor(&client, &signer, event.as_ref()).await {
Ok(rumor) => {
if rumor.tags.is_empty() {
let error: SharedString = "No room for message".into();
tx.send_async(Signal::Error(error)).await?;
let signal =
Signal::error(event.as_ref(), "Recipient is missing");
tx.send_async(signal).await?;
continue;
}
if rumor.created_at >= initialized_at {
let new_message = NewMessage::new(event.id, rumor);
let signal = Signal::Message(new_message);
let signal = Signal::message(event.id, rumor);
tx.send_async(signal).await?;
} else {
status.store(true, Ordering::Release);
}
}
Err(e) => {
let error: SharedString = format!("Failed to unwrap: {e}").into();
tx.send_async(Signal::Error(error)).await?;
let reason = format!("Failed to extract rumor: {e}");
let signal = Signal::error(event.as_ref(), reason);
tx.send_async(signal).await?;
}
}
}
RelayMessage::EndOfStoredEvents(id) => {
if id.as_ref() == &sub_id1 || id.as_ref() == &sub_id2 {
tx.send_async(Signal::Eose).await?;
tx.send_async(Signal::eose()).await?;
}
}
_ => {}
@@ -229,9 +253,10 @@ impl ChatRegistry {
this.get_rooms(cx);
})?;
}
Signal::Error(error) => {
this.update(cx, |_this, cx| {
cx.emit(ChatEvent::Error(error));
Signal::Error(trash) => {
trashes.update(cx, |this, cx| {
this.insert(trash);
cx.notify();
})?;
}
};
@@ -685,8 +710,8 @@ async fn extract_rumor(
gift_wrap: &Event,
) -> Result<UnsignedEvent, Error> {
// Try to get cached rumor first
if let Ok(event) = get_rumor(client, gift_wrap.id).await {
return Ok(event);
if let Ok(rumor) = get_rumor(client, gift_wrap.id).await {
return Ok(rumor);
}
// Try to unwrap with the available signer

View File

@@ -2,6 +2,7 @@ use std::hash::Hash;
use std::ops::Range;
use common::{EventUtils, NostrParser};
use gpui::SharedString;
use nostr_sdk::prelude::*;
/// New message.
@@ -24,6 +25,25 @@ impl NewMessage {
}
}
/// Trash message.
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct FailedMessage {
pub raw_event: String,
pub reason: SharedString,
}
impl FailedMessage {
pub fn new<T>(event: &Event, reason: T) -> Self
where
T: Into<SharedString>,
{
Self {
raw_event: event.as_json(),
reason: reason.into(),
}
}
}
/// Message.
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub enum Message {