Compare commits

...

15 Commits

Author SHA1 Message Date
639b6c9f0a Merge pull request 'chore(deps): update rust crate quick-xml to v0.38.4' (#190) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 1m11s
Continuous integration / Test Suite (push) Successful in 1m28s
Continuous integration / Trunk (push) Successful in 1m10s
Continuous integration / Rustfmt (push) Successful in 48s
Continuous integration / build (push) Successful in 1m44s
Continuous integration / Disallow unused dependencies (push) Successful in 2m16s
2025-11-14 14:46:37 -08:00
2d6bf544da chore(deps): update rust crate quick-xml to v0.38.4
All checks were successful
Continuous integration / Check (push) Successful in 52s
Continuous integration / Test Suite (push) Successful in 1m16s
Continuous integration / Trunk (push) Successful in 58s
Continuous integration / Rustfmt (push) Successful in 48s
Continuous integration / build (push) Successful in 1m45s
Continuous integration / Disallow unused dependencies (push) Successful in 2m30s
2025-11-14 22:16:56 +00:00
a56b6d72f6 Merge pull request 'chore(deps): update rust crate axum to v0.8.7' (#191) from renovate/axum-monorepo into master
All checks were successful
Continuous integration / Check (push) Successful in 1m2s
Continuous integration / Test Suite (push) Successful in 1m58s
Continuous integration / Trunk (push) Successful in 1m9s
Continuous integration / Rustfmt (push) Successful in 52s
Continuous integration / build (push) Successful in 1m28s
Continuous integration / Disallow unused dependencies (push) Successful in 2m36s
2025-11-14 14:16:38 -08:00
c03de14b79 chore(deps): update rust crate axum to v0.8.7
All checks were successful
Continuous integration / Check (push) Successful in 1m4s
Continuous integration / Test Suite (push) Successful in 1m59s
Continuous integration / Trunk (push) Successful in 8m4s
Continuous integration / Rustfmt (push) Successful in 43s
Continuous integration / build (push) Successful in 1m47s
Continuous integration / Disallow unused dependencies (push) Successful in 2m43s
2025-11-14 21:46:44 +00:00
44fc422aa3 Merge pull request 'chore(deps): lock file maintenance' (#189) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 1m18s
Continuous integration / Test Suite (push) Successful in 1m57s
Continuous integration / Trunk (push) Successful in 1m1s
Continuous integration / Rustfmt (push) Successful in 40s
Continuous integration / build (push) Successful in 2m25s
Continuous integration / Disallow unused dependencies (push) Successful in 2m55s
2025-11-09 19:47:33 -08:00
58880c17aa chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 1m48s
Continuous integration / Test Suite (push) Successful in 3m41s
Continuous integration / Trunk (push) Successful in 1m27s
Continuous integration / Rustfmt (push) Successful in 46s
Continuous integration / build (push) Successful in 4m18s
Continuous integration / Disallow unused dependencies (push) Successful in 2m18s
2025-11-10 03:02:35 +00:00
2be3b9ed07 Merge pull request 'chore(deps): lock file maintenance' (#188) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 1m8s
Continuous integration / Test Suite (push) Successful in 1m46s
Continuous integration / Trunk (push) Successful in 7m51s
Continuous integration / Rustfmt (push) Successful in 42s
Continuous integration / build (push) Successful in 2m11s
Continuous integration / Disallow unused dependencies (push) Successful in 2m12s
2025-11-09 16:47:25 -08:00
9dfaa11cc6 chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 2m2s
Continuous integration / Test Suite (push) Successful in 4m18s
Continuous integration / Trunk (push) Successful in 1m52s
Continuous integration / Rustfmt (push) Successful in 42s
Continuous integration / build (push) Successful in 4m21s
Continuous integration / Disallow unused dependencies (push) Successful in 2m32s
2025-11-10 00:02:49 +00:00
49492f9f21 Merge pull request 'chore(deps): update rust crate html2text to v0.16.2' (#187) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 1m18s
Continuous integration / Test Suite (push) Successful in 2m12s
Continuous integration / Trunk (push) Successful in 1m3s
Continuous integration / Rustfmt (push) Successful in 37s
Continuous integration / build (push) Successful in 2m25s
Continuous integration / Disallow unused dependencies (push) Successful in 2m13s
2025-11-08 23:31:37 -08:00
84e120df95 chore(deps): update rust crate html2text to v0.16.2
All checks were successful
Continuous integration / Check (push) Successful in 1m7s
Continuous integration / Test Suite (push) Successful in 1m35s
Continuous integration / Trunk (push) Successful in 7m48s
Continuous integration / Rustfmt (push) Successful in 40s
Continuous integration / build (push) Successful in 2m13s
Continuous integration / Disallow unused dependencies (push) Successful in 2m36s
2025-11-09 07:01:43 +00:00
b21f0bc398 Merge pull request 'chore(deps): update rust crate html2text to v0.16.1' (#186) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 1m2s
Continuous integration / Test Suite (push) Successful in 1m28s
Continuous integration / Trunk (push) Successful in 58s
Continuous integration / Rustfmt (push) Successful in 41s
Continuous integration / build (push) Successful in 1m35s
Continuous integration / Disallow unused dependencies (push) Successful in 2m14s
2025-11-08 03:02:16 -08:00
d8463c3178 chore(deps): update rust crate html2text to v0.16.1
All checks were successful
Continuous integration / Check (push) Successful in 1m7s
Continuous integration / Test Suite (push) Successful in 1m38s
Continuous integration / Trunk (push) Successful in 7m33s
Continuous integration / Rustfmt (push) Successful in 41s
Continuous integration / build (push) Successful in 1m35s
Continuous integration / Disallow unused dependencies (push) Successful in 2m21s
2025-11-08 10:46:41 +00:00
e1681edda3 chore: Release
All checks were successful
Continuous integration / Check (push) Successful in 1m1s
Continuous integration / Test Suite (push) Successful in 1m32s
Continuous integration / Trunk (push) Successful in 1m0s
Continuous integration / Rustfmt (push) Successful in 39s
Continuous integration / build (push) Successful in 1m41s
Continuous integration / Disallow unused dependencies (push) Successful in 2m12s
2025-11-05 21:12:09 -08:00
25ee8522ad cargo sqlx prepare 2025-11-05 21:12:08 -08:00
df356e8711 server: add label_unprocessed method, and implement wake 2025-11-05 21:11:26 -08:00
8 changed files with 199 additions and 161 deletions

268
Cargo.lock generated
View File

@@ -205,7 +205,7 @@ dependencies = [
"rustc-hash",
"serde",
"serde_derive",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -262,7 +262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8725874ecfbf399e071150b8619c4071d7b2b7a2f117e173dddef53c6bdb6bb1"
dependencies = [
"async-graphql",
"axum 0.8.6",
"axum 0.8.7",
"bytes 1.10.1",
"futures-util",
"serde_json",
@@ -285,7 +285,7 @@ dependencies = [
"proc-macro2",
"quote",
"strum",
"syn 2.0.108",
"syn 2.0.110",
"thiserror 1.0.69",
]
@@ -332,7 +332,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -343,7 +343,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -421,9 +421,9 @@ dependencies = [
[[package]]
name = "axum"
version = "0.8.6"
version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871"
checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425"
dependencies = [
"axum-core 0.5.5",
"base64 0.22.1",
@@ -502,7 +502,7 @@ checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -585,7 +585,7 @@ checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -684,18 +684,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.108",
]
[[package]]
name = "build-info"
version = "0.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e232cc6fad4ac9f969bba34440da4d45947a55e60008fbaf5342163f30d6d34"
dependencies = [
"bincode",
"build-info-common 0.0.41",
"build-info-proc 0.0.41",
"syn 2.0.110",
]
[[package]]
@@ -705,8 +694,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "362b762d8ad3063c57f02a3a94bc6814aee11d09c7e4d8b31fefb34d4731a611"
dependencies = [
"bincode",
"build-info-common 0.0.42",
"build-info-proc 0.0.42",
"build-info-common",
"build-info-proc",
]
[[package]]
@@ -718,7 +707,7 @@ dependencies = [
"anyhow",
"base64 0.22.1",
"bincode",
"build-info-common 0.0.42",
"build-info-common",
"cargo_metadata",
"chrono",
"git2",
@@ -729,18 +718,6 @@ dependencies = [
"zstd",
]
[[package]]
name = "build-info-common"
version = "0.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b409ed3b3b89db66e81ed7df221d30a1d78c298e719472cac30b21dfdacf9ce"
dependencies = [
"chrono",
"derive_more",
"semver 1.0.27",
"serde",
]
[[package]]
name = "build-info-common"
version = "0.0.42"
@@ -753,27 +730,6 @@ dependencies = [
"serde",
]
[[package]]
name = "build-info-proc"
version = "0.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fc6a2f7c956ef2a43081719feb90f90998ad1343c770db43bcdbfbc63894db8"
dependencies = [
"anyhow",
"base64 0.22.1",
"bincode",
"build-info-common 0.0.41",
"chrono",
"num-bigint",
"num-traits",
"proc-macro-error2",
"proc-macro2",
"quote",
"serde_json",
"syn 2.0.108",
"zstd",
]
[[package]]
name = "build-info-proc"
version = "0.0.42"
@@ -783,7 +739,7 @@ dependencies = [
"anyhow",
"base64 0.22.1",
"bincode",
"build-info-common 0.0.42",
"build-info-common",
"chrono",
"num-bigint",
"num-traits",
@@ -791,7 +747,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_json",
"syn 2.0.108",
"syn 2.0.110",
"zstd",
]
@@ -907,9 +863,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.44"
version = "1.2.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3"
checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -1016,7 +972,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1381,7 +1337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1439,7 +1395,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim 0.11.1",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1453,7 +1409,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim 0.11.1",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1475,7 +1431,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
"darling_core 0.20.11",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1486,7 +1442,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core 0.21.3",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1530,7 +1486,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1550,7 +1506,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
"unicode-xid",
]
@@ -1630,7 +1586,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -1723,7 +1679,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]]
@@ -1964,7 +1920,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -2509,9 +2465,9 @@ dependencies = [
[[package]]
name = "html2text"
version = "0.16.0"
version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef65fbb577b8015aad4347acceb438da6793bdc9834944c3dfb6ad24dbef849"
checksum = "8ec3405a4163878f29357e1156eacd5c9d72803b62925f190c865d1cae8105d5"
dependencies = [
"html5ever",
"tendril",
@@ -2806,7 +2762,7 @@ dependencies = [
"libc",
"percent-encoding",
"pin-project-lite",
"socket2 0.6.1",
"socket2 0.5.10",
"system-configuration",
"tokio 1.48.0",
"tower-service",
@@ -3066,9 +3022,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
[[package]]
name = "iri-string"
version = "0.7.8"
version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397"
dependencies = [
"memchr",
"serde",
@@ -3142,21 +3098,7 @@ dependencies = [
[[package]]
name = "letterbox-notmuch"
version = "0.17.45"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "030ae3b352f749b387ff4c09d8dd0d01859db86c83a848ca3b6fabd6c61e6edb"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.17",
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.48"
version = "0.17.49"
dependencies = [
"itertools",
"log",
@@ -3169,14 +3111,28 @@ dependencies = [
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.49"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "00a17f171a147d558fc56242e9440731dbf037c24a4e9db7bd2a434c3a294b56"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.17",
"tracing",
]
[[package]]
name = "letterbox-procmail2notmuch"
version = "0.17.48"
version = "0.17.49"
dependencies = [
"anyhow",
"clap",
"letterbox-notmuch 0.17.45",
"letterbox-shared 0.17.45",
"letterbox-notmuch 0.17.49 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-shared 0.17.49 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"serde",
"sqlx",
"tokio 1.48.0",
@@ -3184,7 +3140,7 @@ dependencies = [
[[package]]
name = "letterbox-server"
version = "0.17.48"
version = "0.17.49"
dependencies = [
"ammonia",
"anyhow",
@@ -3192,9 +3148,9 @@ dependencies = [
"async-graphql",
"async-graphql-axum",
"async-trait",
"axum 0.8.6",
"axum 0.8.7",
"axum-macros",
"build-info 0.0.42",
"build-info",
"build-info-build",
"cacher",
"chrono",
@@ -3207,8 +3163,8 @@ dependencies = [
"html-escape",
"html2text",
"ical",
"letterbox-notmuch 0.17.48",
"letterbox-shared 0.17.48",
"letterbox-notmuch 0.17.49",
"letterbox-shared 0.17.49",
"linkify",
"lol_html",
"mailparse",
@@ -3234,12 +3190,10 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.45"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "2a541a4fce95b2f59de57c578cb7c2958ff48474cea4c619aacd1738ce3e7e0d"
version = "0.17.49"
dependencies = [
"build-info 0.0.41",
"letterbox-notmuch 0.17.45",
"build-info",
"letterbox-notmuch 0.17.49",
"regex",
"serde",
"sqlx",
@@ -3249,10 +3203,12 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.48"
version = "0.17.49"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "aa71e36a33239a05140bac4e5ca366b79e1d6244ffc9b8e5a81f45271b54daaf"
dependencies = [
"build-info 0.0.42",
"letterbox-notmuch 0.17.48",
"build-info",
"letterbox-notmuch 0.17.49 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"regex",
"serde",
"sqlx",
@@ -3262,9 +3218,9 @@ dependencies = [
[[package]]
name = "letterbox-web"
version = "0.17.48"
version = "0.17.49"
dependencies = [
"build-info 0.0.42",
"build-info",
"build-info-build",
"chrono",
"console_error_panic_hook",
@@ -3274,7 +3230,7 @@ dependencies = [
"graphql_client",
"human_format",
"itertools",
"letterbox-shared 0.17.48",
"letterbox-shared 0.17.49",
"log",
"seed",
"seed_hooks",
@@ -3511,7 +3467,7 @@ checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -3802,7 +3758,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]]
@@ -3909,9 +3865,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "openssl"
version = "0.10.74"
version = "0.10.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654"
checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328"
dependencies = [
"bitflags 2.10.0",
"cfg-if 1.0.4",
@@ -3930,7 +3886,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -3941,9 +3897,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
[[package]]
name = "openssl-sys"
version = "0.9.110"
version = "0.9.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2"
checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321"
dependencies = [
"cc",
"libc",
@@ -4190,7 +4146,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4252,7 +4208,7 @@ dependencies = [
"phf_shared 0.11.3",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4290,7 +4246,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4385,7 +4341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
dependencies = [
"proc-macro2",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4440,7 +4396,7 @@ dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4472,7 +4428,7 @@ dependencies = [
"itertools",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -4486,9 +4442,9 @@ dependencies = [
[[package]]
name = "quick-xml"
version = "0.38.3"
version = "0.38.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
dependencies = [
"memchr",
"serde",
@@ -4507,7 +4463,7 @@ dependencies = [
"quinn-udp",
"rustc-hash",
"rustls",
"socket2 0.6.1",
"socket2 0.5.10",
"thiserror 2.0.17",
"tokio 1.48.0",
"tracing",
@@ -4544,16 +4500,16 @@ dependencies = [
"cfg_aliases",
"libc",
"once_cell",
"socket2 0.6.1",
"socket2 0.5.10",
"tracing",
"windows-sys 0.60.2",
"windows-sys 0.52.0",
]
[[package]]
name = "quote"
version = "1.0.41"
version = "1.0.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
dependencies = [
"proc-macro2",
]
@@ -5063,14 +5019,14 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
name = "rustls"
version = "0.23.34"
version = "0.23.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7"
checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f"
dependencies = [
"log",
"once_cell",
@@ -5348,7 +5304,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -5640,7 +5596,7 @@ dependencies = [
"quote",
"sqlx-core",
"sqlx-macros-core",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -5663,7 +5619,7 @@ dependencies = [
"sqlx-mysql",
"sqlx-postgres",
"sqlx-sqlite",
"syn 2.0.108",
"syn 2.0.110",
"tokio 1.48.0",
"url",
]
@@ -5862,7 +5818,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -5874,7 +5830,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -5902,9 +5858,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.108"
version = "2.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917"
checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea"
dependencies = [
"proc-macro2",
"quote",
@@ -5928,7 +5884,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -6108,7 +6064,7 @@ dependencies = [
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@@ -6148,7 +6104,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -6159,7 +6115,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -6351,7 +6307,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -6737,7 +6693,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -7048,7 +7004,7 @@ dependencies = [
"log",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
"wasm-bindgen-shared",
]
@@ -7083,7 +7039,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -7217,7 +7173,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -7228,7 +7184,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -7607,7 +7563,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
"synstructure",
]
@@ -7628,7 +7584,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -7648,7 +7604,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
"synstructure",
]
@@ -7669,7 +7625,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]
@@ -7702,7 +7658,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn 2.0.110",
]
[[package]]

View File

@@ -8,7 +8,7 @@ authors = ["Bill Thiede <git@xinu.tv>"]
edition = "2021"
license = "UNLICENSED"
publish = ["xinu"]
version = "0.17.48"
version = "0.17.49"
repository = "https://git.z.xinu.tv/wathiede/letterbox"
[profile.dev]

View File

@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM snooze WHERE id = $1",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int4"
]
},
"nullable": []
},
"hash": "77f79f981a9736d18ffd4b87d3aec34d6a048162154a3aba833370c58a860795"
}

View File

@@ -0,0 +1,26 @@
{
"db_name": "PostgreSQL",
"query": "\nSELECT id, message_id\nFROM snooze\nWHERE wake < NOW();\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "message_id",
"type_info": "Text"
}
],
"parameters": {
"Left": []
},
"nullable": [
false,
false
]
},
"hash": "c8383663124a5cc5912b54553f18f7064d33087ebfdf3c0c1c43cbe6d3577084"
}

View File

@@ -32,8 +32,8 @@ futures = "0.3.31"
headers = "0.4.0"
html-escape = "0.2.13"
ical = "0.11"
letterbox-notmuch = { path = "../notmuch", version = "0.17.48", registry = "xinu" }
letterbox-shared = { path = "../shared", version = "0.17.48", registry = "xinu" }
letterbox-notmuch = { path = "../notmuch", version = "0.17.49", registry = "xinu" }
letterbox-shared = { path = "../shared", version = "0.17.49", registry = "xinu" }
linkify = "0.10.0"
lol_html = "2.3.0"
mailparse = "0.16.1"

View File

@@ -676,6 +676,18 @@ impl MutationRoot {
Ok(true)
}
#[instrument(skip_all, fields(rid=request_id()))]
async fn label_unprocessed<'ctx>(
&self,
ctx: &Context<'ctx>,
limit: Option<usize>,
) -> Result<bool, Error> {
let nm = ctx.data_unchecked::<Notmuch>();
let pool = ctx.data_unchecked::<PgPool>();
label_unprocessed(&nm, &pool, false, limit, "tag:unprocessed").await?;
Ok(true)
}
#[instrument(skip_all, fields(rid=request_id()))]
async fn refresh<'ctx>(&self, ctx: &Context<'ctx>) -> Result<bool, Error> {
let nm = ctx.data_unchecked::<Notmuch>();
@@ -687,6 +699,9 @@ impl MutationRoot {
// Process email labels
label_unprocessed(&nm, &pool, false, Some(1000), "tag:unprocessed").await?;
// Look for snoozed messages and mark unread
wakeup(&nm, &pool).await?;
#[cfg(feature = "tantivy")]
{
let tantivy = ctx.data_unchecked::<TantivyConnection>();
@@ -707,6 +722,33 @@ impl SubscriptionRoot {
pub type GraphqlSchema = Schema<QueryRoot, MutationRoot, SubscriptionRoot>;
#[instrument(name = "wakeup", skip_all)]
pub async fn wakeup(nm: &Notmuch, pool: &PgPool) -> Result<(), Error> {
for row in sqlx::query!(
r#"
SELECT id, message_id
FROM snooze
WHERE wake < NOW();
"#
)
.fetch_all(pool)
.await?
{
let query: Query = row.message_id.parse()?;
info!("need to wake {query}");
let unread = true;
newsreader::set_read_status(pool, &query, unread).await?;
#[cfg(feature = "tantivy")]
tantivy.reindex_thread(pool, &query).await?;
nm::set_read_status(nm, &query, unread).await?;
sqlx::query!("DELETE FROM snooze WHERE id = $1", row.id)
.execute(pool)
.await?;
}
Ok(())
}
#[instrument(skip_all, fields(query=query))]
pub async fn compute_catchup_ids(
nm: &Notmuch,

View File

@@ -12,7 +12,7 @@ version.workspace = true
[dependencies]
build-info = "0.0.42"
letterbox-notmuch = { path = "../notmuch", version = "0.17.48", registry = "xinu" }
letterbox-notmuch = { path = "../notmuch", version = "0.17.49", registry = "xinu" }
regex = "1.11.1"
serde = { version = "1.0.219", features = ["derive"] }
sqlx = "0.8.5"

View File

@@ -33,7 +33,7 @@ wasm-bindgen = "=0.2.100"
uuid = { version = "1.16.0", features = [
"js",
] } # direct dep to set js feature, prevents Rng issues
letterbox-shared = { path = "../shared/", version = "0.17.48", registry = "xinu" }
letterbox-shared = { path = "../shared/", version = "0.17.49", registry = "xinu" }
seed_hooks = { version = "0.4.1", registry = "xinu" }
strum_macros = "0.27.1"
gloo-console = "0.3.0"