Commit f40cf95cc4fe
tarball10 files changed+110-31
@@ -1935,7 +1935,7 @@ checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f"
19351935
[[package]]19361936
name = "macltok"19371937
version = "0.1.0"1938
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=cbb715e119632f60c9b3ec1bc8803f1f33e39dce#cbb715e119632f60c9b3ec1bc8803f1f33e39dce"1938
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=80381e06a573f253c11a8b4c89366a9aa299ca55#80381e06a573f253c11a8b4c89366a9aa299ca55"19391939
dependencies = [19401940
"futures-util",19411941
"getrandom 0.2.17",@@ -2166,7 +2166,7 @@ dependencies = [
21662166
[[package]]21672167
name = "matrix-sdk"21682168
version = "0.18.0"2169
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2169
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"21702170
dependencies = [21712171
"anymap2",21722172
"aquamarine",@@ -2229,7 +2229,7 @@ dependencies = [
22292229
[[package]]22302230
name = "matrix-sdk-base"22312231
version = "0.18.0"2232
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2232
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"22332233
dependencies = [22342234
"as_variant",22352235
"assert_matches",@@ -2259,7 +2259,7 @@ dependencies = [
22592259
[[package]]22602260
name = "matrix-sdk-common"22612261
version = "0.18.0"2262
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2262
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"22632263
dependencies = [22642264
"eyeball-im",22652265
"futures-core",@@ -2282,7 +2282,7 @@ dependencies = [
22822282
[[package]]22832283
name = "matrix-sdk-crypto"22842284
version = "0.18.0"2285
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2285
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"22862286
dependencies = [22872287
"aes",22882288
"aquamarine",@@ -2323,7 +2323,7 @@ dependencies = [
23232323
[[package]]23242324
name = "matrix-sdk-indexeddb"23252325
version = "0.18.0"2326
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2326
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"23272327
dependencies = [23282328
"async-trait",23292329
"base64 0.22.1",@@ -2354,7 +2354,7 @@ dependencies = [
23542354
[[package]]23552355
name = "matrix-sdk-sqlite"23562356
version = "0.18.0"2357
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2357
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"23582358
dependencies = [23592359
"as_variant",23602360
"async-trait",@@ -2381,7 +2381,7 @@ dependencies = [
23812381
[[package]]23822382
name = "matrix-sdk-store-encryption"23832383
version = "0.18.0"2384
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2384
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"23852385
dependencies = [23862386
"base64 0.22.1",23872387
"blake3",@@ -2402,7 +2402,7 @@ dependencies = [
24022402
[[package]]24032403
name = "matrix-sdk-test"24042404
version = "0.18.0"2405
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2405
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"24062406
dependencies = [24072407
"as_variant",24082408
"ctor",@@ -2425,7 +2425,7 @@ dependencies = [
24252425
[[package]]24262426
name = "matrix-sdk-test-macros"24272427
version = "0.18.0"2428
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2428
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"24292429
dependencies = [24302430
"quote",24312431
"syn 2.0.119",@@ -2434,7 +2434,7 @@ dependencies = [
24342434
[[package]]24352435
name = "matrix-sdk-ui"24362436
version = "0.18.0"2437
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2437
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"24382438
dependencies = [24392439
"as_variant",24402440
"async-rx",@@ -3,7 +3,7 @@ resolver = "3"
33
members = ["crates/malice-core", "crates/malice-server", "crates/malice-static"]44
55
[workspace.dependencies]6
-macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "cbb715e119632f60c9b3ec1bc8803f1f33e39dce" }6
+macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "80381e06a573f253c11a8b4c89366a9aa299ca55" }77
ruma = { version = "0.16", default-features = false }88
serde = { version = "1", features = ["derive"] }99
serde_json = "1"@@ -2,10 +2,9 @@ use std::collections::HashMap;
22
33
use futures_util::{Stream, StreamExt, stream};44
use macltok::{5
- ConnectionState, EncryptionState, ImagePacks, MentionsPage, MentionsUpdate, MirrorHandle,6
- RoomSummary, SessionStatus, State, StateChange, TimelineChange, TimelineId, TimelineItem,7
- UploadOutcome, VerificationState,8
- imbl::Vector,5
+ ConnectionState, EncryptionState, HistoryRepairReport, ImagePacks, MentionsPage,6
+ MentionsUpdate, MirrorHandle, RoomSummary, SessionStatus, State, StateChange, TimelineChange,7
+ TimelineId, TimelineItem, UploadOutcome, VerificationState, imbl::Vector,98
};109
use serde::Serialize;1110
@@ -21,10 +20,14 @@ pub enum WireEvent {
2120
verification: Option<VerificationState>,2221
image_packs: ImagePacks,2322
mentions: Option<MentionsPage>,23
+ repairs: HashMap<String, HistoryRepairReport>,2424
},2525
Mentions {2626
update: MentionsUpdate,2727
},28
+ HistoryRepair {29
+ report: HistoryRepairReport,30
+ },2831
ImagePacks {2932
packs: ImagePacks,3033
},@@ -116,6 +119,11 @@ pub fn snapshot_event(state: &State) -> WireEvent {
116119
verification: state.verification.clone(),117120
image_packs: state.image_packs.clone(),118121
mentions: state.mentions.clone(),122
+ repairs: state123
+ .repairs124
+ .iter()125
+ .map(|(room_id, report)| (room_id.as_str().to_owned(), report.clone()))126
+ .collect(),119127
}120128
}121129
@@ -185,6 +193,9 @@ pub fn wire_events(change: &StateChange) -> Vec<WireEvent> {
185193
StateChange::Mentions(update) => vec![WireEvent::Mentions {186194
update: update.clone(),187195
}],196
+ StateChange::HistoryRepair(report) => vec![WireEvent::HistoryRepair {197
+ report: report.clone(),198
+ }],188199
StateChange::Failed(failure) => vec![error(&failure.message)],189200
StateChange::SessionSaveFailed(_) => {190201
vec![error(@@ -1,8 +1,9 @@
11
use macltok::ruma::{events::GlobalAccountDataEventType, serde::Raw};22
use macltok::{3
- AttachmentUpload, ClientHandle, CreateRoomOptions, ImagePackSource, MediaId, MediaSize,4
- MemberFilter, MentionKey, MentionsBoundary, MessageContent, MessageEditContent, MirrorHandle,5
- PackImageInfo, PackUsage, Patch, RichText, TimelineId, VerificationAction, VerificationTarget,3
+ AttachmentUpload, ClientHandle, CreateRoomOptions, HistoryRepairBudget, HistoryRepairPolicy,4
+ ImagePackSource, MediaId, MediaSize, MemberFilter, MentionKey, MentionsBoundary,5
+ MessageContent, MessageEditContent, MirrorHandle, PackImageInfo, PackUsage, Patch, RichText,6
+ TimelineId, VerificationAction, VerificationTarget,67
};78
use serde::Deserialize;89
use serde_json::json;@@ -77,6 +78,28 @@ pub enum Request {
7778
#[serde(default)]7879
room_id: String,7980
},81
+ HistoryRepair {82
+ room_id: String,83
+ #[serde(default)]84
+ policy: Option<HistoryRepairPolicy>,85
+ #[serde(default)]86
+ budget: HistoryRepairBudget,87
+ },88
+ ContinueHistoryRepair {89
+ room_id: String,90
+ #[serde(default)]91
+ budget: HistoryRepairBudget,92
+ },93
+ CancelHistoryRepair {94
+ room_id: String,95
+ },96
+ StartRecentHistory {97
+ room_id: String,98
+ },99
+ HistoryRepairPolicy,100
+ SetHistoryRepairPolicy {101
+ policy: HistoryRepairPolicy,102
+ },80103
EventContext {81104
#[serde(default)]82105
room_id: String,@@ -529,6 +552,41 @@ pub async fn dispatch(
529552
handle.paginate(TimelineId::Room(room_id), 30).await?;530553
Ok(Reply::Done)531554
}555
+ Request::HistoryRepair {556
+ room_id,557
+ policy,558
+ budget,559
+ } => {560
+ let report = handle561
+ .history_repair(parse_room_id(&room_id)?, policy, budget)562
+ .await?;563
+ Ok(Reply::Json(json!(report)))564
+ }565
+ Request::ContinueHistoryRepair { room_id, budget } => {566
+ let report = handle567
+ .continue_history_repair(parse_room_id(&room_id)?, budget)568
+ .await?;569
+ Ok(Reply::Json(json!(report)))570
+ }571
+ Request::CancelHistoryRepair { room_id } => {572
+ handle573
+ .cancel_history_repair(parse_room_id(&room_id)?)574
+ .await?;575
+ Ok(Reply::Done)576
+ }577
+ Request::StartRecentHistory { room_id } => {578
+ let report = handle579
+ .start_recent_history(parse_room_id(&room_id)?)580
+ .await?;581
+ Ok(Reply::Json(json!(report)))582
+ }583
+ Request::HistoryRepairPolicy => {584
+ Ok(Reply::Json(json!(handle.history_repair_policy().await?)))585
+ }586
+ Request::SetHistoryRepairPolicy { policy } => {587
+ handle.set_history_repair_policy(policy).await?;588
+ Ok(Reply::Done)589
+ }532590
Request::EventContext {533591
room_id,534592
event_id,@@ -31,7 +31,7 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] }
3131
[dev-dependencies]3232
http-body-util = "0.1"3333
tower = { version = "0.5", features = ["util"] }34
-matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "7aace883fbe03d4c3c118b55188fe9519ba8ce48", default-features = false, features = ["testing"] }34
+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "9b9b16982dcab5dd499547bb87e121b9d0cba6b5", default-features = false, features = ["testing"] }3535
reqwest = { version = "0.13", default-features = false, features = ["json", "query", "rustls"] }3636
tempfile = "3"3737
wiremock = "0.6"@@ -560,6 +560,12 @@ async fn post_command(
560560
| Request::SetMentionsRead { .. }561561
| Request::MarkMentionsReadThrough { .. }562562
| Request::RecoverMentions563
+ | Request::HistoryRepair { .. }564
+ | Request::ContinueHistoryRepair { .. }565
+ | Request::CancelHistoryRepair { .. }566
+ | Request::StartRecentHistory { .. }567
+ | Request::HistoryRepairPolicy568
+ | Request::SetHistoryRepairPolicy { .. }563569
| Request::Kick { .. }564570
| Request::Ban { .. }565571
| Request::Unban { .. }@@ -404,12 +404,13 @@ async fn wait_authenticated(mirror: &MirrorHandle) -> Option<String> {
404404
| StateChange::Encryption(_)405405
| StateChange::Verification(_)406406
| StateChange::VerificationTarget(_)407
- | StateChange::Mentions(_)407
+ | StateChange::Mentions(_)408408
| StateChange::NotificationSettings409409
| StateChange::Rooms(_)410410
| StateChange::ImagePacks(_)411411
| StateChange::Timeline { .. }412412
| StateChange::History { .. }413
+ | StateChange::HistoryRepair(_)413414
| StateChange::Typing(_)414415
| StateChange::Upload { .. }415416
| StateChange::UploadFinished { .. }@@ -1722,7 +1722,7 @@ checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f"
17221722
[[package]]17231723
name = "macltok"17241724
version = "0.1.0"1725
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=cbb715e119632f60c9b3ec1bc8803f1f33e39dce#cbb715e119632f60c9b3ec1bc8803f1f33e39dce"1725
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=80381e06a573f253c11a8b4c89366a9aa299ca55#80381e06a573f253c11a8b4c89366a9aa299ca55"17261726
dependencies = [17271727
"futures-util",17281728
"getrandom 0.2.17",@@ -1869,6 +1869,7 @@ dependencies = [
18691869
"js-sys",18701870
"macltok",18711871
"malice-core",1872
+ "matrix-sdk",18721873
"ruma",18731874
"serde_json",18741875
"wasm-bindgen",@@ -1928,7 +1929,7 @@ dependencies = [
19281929
[[package]]19291930
name = "matrix-sdk"19301931
version = "0.18.0"1931
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"1932
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"19321933
dependencies = [19331934
"anymap2",19341935
"aquamarine",@@ -1988,7 +1989,7 @@ dependencies = [
19881989
[[package]]19891990
name = "matrix-sdk-base"19901991
version = "0.18.0"1991
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"1992
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"19921993
dependencies = [19931994
"as_variant",19941995
"async-trait",@@ -2014,7 +2015,7 @@ dependencies = [
20142015
[[package]]20152016
name = "matrix-sdk-common"20162017
version = "0.18.0"2017
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2018
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"20182019
dependencies = [20192020
"eyeball-im",20202021
"futures-core",@@ -2037,7 +2038,7 @@ dependencies = [
20372038
[[package]]20382039
name = "matrix-sdk-crypto"20392040
version = "0.18.0"2040
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2041
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"20412042
dependencies = [20422043
"aes",20432044
"aquamarine",@@ -2077,7 +2078,7 @@ dependencies = [
20772078
[[package]]20782079
name = "matrix-sdk-indexeddb"20792080
version = "0.18.0"2080
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2081
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"20812082
dependencies = [20822083
"async-trait",20832084
"base64 0.22.1",@@ -2109,7 +2110,7 @@ dependencies = [
21092110
[[package]]21102111
name = "matrix-sdk-sqlite"21112112
version = "0.18.0"2112
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2113
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"21132114
dependencies = [21142115
"as_variant",21152116
"async-trait",@@ -2136,7 +2137,7 @@ dependencies = [
21362137
[[package]]21372138
name = "matrix-sdk-store-encryption"21382139
version = "0.18.0"2139
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2140
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"21402141
dependencies = [21412142
"base64 0.22.1",21422143
"blake3",@@ -2157,7 +2158,7 @@ dependencies = [
21572158
[[package]]21582159
name = "matrix-sdk-ui"21592160
version = "0.18.0"2160
-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=7aace883fbe03d4c3c118b55188fe9519ba8ce48#7aace883fbe03d4c3c118b55188fe9519ba8ce48"2161
+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=9b9b16982dcab5dd499547bb87e121b9d0cba6b5#9b9b16982dcab5dd499547bb87e121b9d0cba6b5"21612162
dependencies = [21622163
"as_variant",21632164
"async-rx",@@ -14,7 +14,7 @@ publish = false
1414
crate-type = ["cdylib", "rlib"]1515
1616
[target.'cfg(target_family = "wasm")'.dependencies]17
-macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "cbb715e119632f60c9b3ec1bc8803f1f33e39dce", features = ["indexeddb", "serde", "mirror"] }17
+macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "80381e06a573f253c11a8b4c89366a9aa299ca55", features = ["indexeddb", "serde", "mirror"] }1818
malice-core = { path = "../malice-core" }1919
ruma = { version = "0.16", default-features = false }2020
futures-util = { version = "0.3", default-features = false, features = ["std"] }@@ -27,6 +27,7 @@ wasm-bindgen-futures = "=0.4.78"
2727
js-sys = "=0.3.105"2828
2929
[dev-dependencies]30
+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "9b9b16982dcab5dd499547bb87e121b9d0cba6b5", default-features = false }3031
wasm-bindgen-test = "0.3"3132
web-sys = { version = "0.3", features = ["SharedWorkerGlobalScope"] }3233
gloo-timers = { version = "0.3", features = ["futures"] }@@ -111,6 +111,7 @@ async fn wait_authenticated(mirror: &MirrorHandle) -> Option<String> {
111111
| StateChange::ImagePacks(_)112112
| StateChange::Timeline { .. }113113
| StateChange::History { .. }114
+ | StateChange::HistoryRepair(_)114115
| StateChange::Typing(_)115116
| StateChange::Upload { .. }116117
| StateChange::UploadFinished { .. }