Compare commits

...

24 Commits

Author SHA1 Message Date
8a86f0d0b2 chore: Release
All checks were successful
Continuous integration / Check (push) Successful in 1m8s
Continuous integration / Test Suite (push) Successful in 3m35s
Continuous integration / Rustfmt (push) Successful in 55s
Continuous integration / Trunk (push) Successful in 2m4s
Continuous integration / build (push) Successful in 1m51s
Continuous integration / Disallow unused dependencies (push) Successful in 5m1s
2026-01-04 11:08:22 -08:00
eab4986fd3 server: fix date extraction and unit tests 2026-01-04 11:08:03 -08:00
3c644c570e Merge pull request 'chore(deps): lock file maintenance' (#223) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 1m25s
Continuous integration / Test Suite (push) Successful in 2m17s
Continuous integration / Trunk (push) Successful in 2m5s
Continuous integration / Rustfmt (push) Successful in 42s
Continuous integration / Disallow unused dependencies (push) Successful in 2m26s
Continuous integration / build (push) Successful in 9m7s
2025-12-28 18:46:57 -08:00
7a9df3c15c chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 2m28s
Continuous integration / Test Suite (push) Successful in 2m42s
Continuous integration / Rustfmt (push) Successful in 42s
Continuous integration / build (push) Successful in 2m41s
Continuous integration / Disallow unused dependencies (push) Successful in 2m14s
Continuous integration / Trunk (push) Successful in 20m53s
2025-12-29 01:47:41 +00:00
f9d8acf744 Merge pull request 'chore(deps): lock file maintenance' (#222) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 2m14s
Continuous integration / Test Suite (push) Successful in 1m51s
Continuous integration / Rustfmt (push) Successful in 1m2s
Continuous integration / Trunk (push) Successful in 2m7s
Continuous integration / build (push) Successful in 2m7s
Continuous integration / Disallow unused dependencies (push) Successful in 5m4s
2025-12-28 16:48:08 -08:00
75f3770f3e chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 4m26s
Continuous integration / Test Suite (push) Successful in 4m25s
Continuous integration / Rustfmt (push) Successful in 40s
Continuous integration / build (push) Successful in 4m10s
Continuous integration / Disallow unused dependencies (push) Successful in 2m18s
Continuous integration / Trunk (push) Successful in 20m54s
2025-12-29 00:02:21 +00:00
85dd61a272 Merge pull request 'chore(deps): update rust crate serde_json to v1.0.146' (#220) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 1m29s
Continuous integration / Test Suite (push) Successful in 6m57s
Continuous integration / Trunk (push) Successful in 7m51s
Continuous integration / Rustfmt (push) Successful in 1m30s
Continuous integration / build (push) Successful in 2m18s
Continuous integration / Disallow unused dependencies (push) Successful in 5m1s
2025-12-22 05:01:52 -08:00
1c5412de14 chore(deps): update rust crate serde_json to v1.0.146
All checks were successful
Continuous integration / Check (push) Successful in 2m41s
Continuous integration / Test Suite (push) Successful in 2m46s
Continuous integration / Rustfmt (push) Successful in 54s
Continuous integration / build (push) Successful in 2m51s
Continuous integration / Disallow unused dependencies (push) Successful in 2m16s
Continuous integration / Trunk (push) Successful in 21m20s
2025-12-22 12:31:26 +00:00
034027ddd5 Merge pull request 'chore(deps): lock file maintenance' (#219) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 1m39s
Continuous integration / Test Suite (push) Successful in 2m37s
Continuous integration / Trunk (push) Successful in 2m5s
Continuous integration / Rustfmt (push) Successful in 53s
Continuous integration / Disallow unused dependencies (push) Successful in 2m30s
Continuous integration / build (push) Successful in 7m6s
2025-12-21 16:47:07 -08:00
81a07a8172 chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 3m28s
Continuous integration / Test Suite (push) Successful in 3m40s
Continuous integration / Rustfmt (push) Successful in 47s
Continuous integration / build (push) Successful in 3m30s
Continuous integration / Disallow unused dependencies (push) Successful in 2m22s
Continuous integration / Trunk (push) Successful in 21m0s
2025-12-22 00:02:30 +00:00
d9e8c2133e Merge pull request 'chore(deps): update rust crate axum to v0.8.8' (#218) from renovate/axum-monorepo into master
All checks were successful
Continuous integration / Check (push) Successful in 1m10s
Continuous integration / Trunk (push) Successful in 1m12s
Continuous integration / Rustfmt (push) Successful in 50s
Continuous integration / Test Suite (push) Successful in 3m2s
Continuous integration / build (push) Successful in 1m54s
Continuous integration / Disallow unused dependencies (push) Successful in 5m0s
2025-12-20 09:02:03 -08:00
99aa7a7071 chore(deps): update rust crate axum to v0.8.8
All checks were successful
Continuous integration / Check (push) Successful in 1m11s
Continuous integration / Test Suite (push) Successful in 3m36s
Continuous integration / Rustfmt (push) Successful in 1m30s
Continuous integration / build (push) Successful in 4m12s
Continuous integration / Trunk (push) Successful in 8m35s
Continuous integration / Disallow unused dependencies (push) Successful in 5m2s
2025-12-20 16:46:32 +00:00
cc585cc63f Merge pull request 'chore(deps): lock file maintenance' (#214) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 55s
Continuous integration / Test Suite (push) Successful in 1m17s
Continuous integration / Trunk (push) Successful in 1m3s
Continuous integration / Rustfmt (push) Successful in 1m29s
Continuous integration / build (push) Successful in 1m28s
Continuous integration / Disallow unused dependencies (push) Successful in 5m3s
2025-12-15 09:47:04 -08:00
293f90fde5 chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 1m3s
Continuous integration / Test Suite (push) Successful in 1m38s
Continuous integration / Trunk (push) Successful in 1m13s
Continuous integration / Rustfmt (push) Successful in 41s
Continuous integration / build (push) Successful in 1m36s
Continuous integration / Disallow unused dependencies (push) Successful in 2m17s
2025-12-15 17:17:40 +00:00
a06e4b3454 Merge pull request 'chore(deps): update rust crate reqwest to v0.12.26' (#215) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 56s
Continuous integration / Test Suite (push) Successful in 1m22s
Continuous integration / Rustfmt (push) Successful in 40s
Continuous integration / build (push) Successful in 1m36s
Continuous integration / Disallow unused dependencies (push) Successful in 2m27s
Continuous integration / Trunk (push) Successful in 21m2s
2025-12-15 09:16:55 -08:00
6e5145e21b chore(deps): update rust crate reqwest to v0.12.26
All checks were successful
Continuous integration / Check (push) Successful in 56s
Continuous integration / Test Suite (push) Successful in 1m38s
Continuous integration / Trunk (push) Successful in 1m5s
Continuous integration / Rustfmt (push) Successful in 1m30s
Continuous integration / build (push) Successful in 2m18s
Continuous integration / Disallow unused dependencies (push) Successful in 5m6s
2025-12-15 16:46:42 +00:00
d41f3e9fd1 Merge pull request 'chore(deps): lock file maintenance' (#213) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 58s
Continuous integration / Test Suite (push) Successful in 1m37s
Continuous integration / Rustfmt (push) Successful in 54s
Continuous integration / Trunk (push) Successful in 2m3s
Continuous integration / build (push) Successful in 1m42s
Continuous integration / Disallow unused dependencies (push) Successful in 5m4s
2025-12-14 16:47:42 -08:00
5519018043 chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 1m15s
Continuous integration / Test Suite (push) Successful in 2m23s
Continuous integration / Rustfmt (push) Successful in 1m16s
Continuous integration / build (push) Successful in 2m42s
Continuous integration / Disallow unused dependencies (push) Successful in 2m24s
Continuous integration / Trunk (push) Successful in 21m15s
2025-12-15 00:02:24 +00:00
e3121219b6 chore: Release
All checks were successful
Continuous integration / Check (push) Successful in 1m3s
Continuous integration / Test Suite (push) Successful in 1m19s
Continuous integration / Trunk (push) Successful in 1m2s
Continuous integration / Rustfmt (push) Successful in 49s
Continuous integration / Disallow unused dependencies (push) Successful in 2m26s
Continuous integration / build (push) Successful in 3m12s
2025-12-14 09:14:13 -08:00
7272bbb6b0 web: text overflow at 2 lines for subject and authors 2025-12-14 09:13:48 -08:00
dc741f421b Merge pull request 'fix(deps): update all non-major dependencies' (#212) from renovate/all-minor-patch into master
All checks were successful
Continuous integration / Check (push) Successful in 1m26s
Continuous integration / Trunk (push) Successful in 1m11s
Continuous integration / Test Suite (push) Successful in 3m17s
Continuous integration / Rustfmt (push) Successful in 42s
Continuous integration / Disallow unused dependencies (push) Successful in 2m25s
Continuous integration / build (push) Successful in 7m21s
2025-12-08 13:17:00 -08:00
69d3b8a210 fix(deps): update all non-major dependencies
All checks were successful
Continuous integration / Check (push) Successful in 2m9s
Continuous integration / Test Suite (push) Successful in 2m50s
Continuous integration / Rustfmt (push) Successful in 1m27s
Continuous integration / build (push) Successful in 3m50s
Continuous integration / Disallow unused dependencies (push) Successful in 2m33s
Continuous integration / Trunk (push) Successful in 20m56s
2025-12-08 20:32:37 +00:00
f5c4067291 Merge pull request 'chore(deps): lock file maintenance' (#211) from renovate/lock-file-maintenance into master
All checks were successful
Continuous integration / Check (push) Successful in 1m28s
Continuous integration / Test Suite (push) Successful in 2m17s
Continuous integration / Trunk (push) Successful in 7m39s
Continuous integration / Rustfmt (push) Successful in 1m29s
Continuous integration / build (push) Successful in 3m25s
Continuous integration / Disallow unused dependencies (push) Successful in 5m7s
2025-12-07 16:32:06 -08:00
930a45cbad chore(deps): lock file maintenance
All checks were successful
Continuous integration / Check (push) Successful in 2m21s
Continuous integration / Trunk (push) Successful in 2m41s
Continuous integration / Test Suite (push) Successful in 4m28s
Continuous integration / Rustfmt (push) Successful in 1m30s
Continuous integration / build (push) Successful in 4m42s
Continuous integration / Disallow unused dependencies (push) Successful in 5m7s
2025-12-08 00:02:19 +00:00
5 changed files with 215 additions and 167 deletions

350
Cargo.lock generated
View File

@@ -150,9 +150,12 @@ dependencies = [
[[package]]
name = "arc-swap"
version = "1.7.1"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e"
dependencies = [
"rustversion",
]
[[package]]
name = "arrayref"
@@ -185,7 +188,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4"
dependencies = [
"askama_derive",
"itoa 1.0.15",
"itoa 1.0.17",
"percent-encoding",
"serde",
"serde_json",
@@ -394,9 +397,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "axum"
version = "0.8.7"
version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425"
checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8"
dependencies = [
"axum-core",
"base64 0.22.1",
@@ -408,7 +411,7 @@ dependencies = [
"http-body-util",
"hyper 1.8.1",
"hyper-util",
"itoa 1.0.15",
"itoa 1.0.17",
"matchit",
"memchr",
"mime",
@@ -430,9 +433,9 @@ dependencies = [
[[package]]
name = "axum-core"
version = "0.5.5"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22"
checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1"
dependencies = [
"bytes 1.11.0",
"futures-core",
@@ -484,9 +487,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "base64ct"
version = "1.8.0"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a"
[[package]]
name = "basic-toml"
@@ -519,9 +522,9 @@ dependencies = [
[[package]]
name = "bitcode"
version = "0.6.7"
version = "0.6.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "648bd963d2e5d465377acecfb4b827f9f553b6bc97a8f61715779e9ed9e52b74"
checksum = "0a6ed1b54d8dc333e7be604d00fa9262f4635485ffea923647b6521a5fff045d"
dependencies = [
"arrayvec 0.7.6",
"bitcode_derive",
@@ -532,9 +535,9 @@ dependencies = [
[[package]]
name = "bitcode_derive"
version = "0.6.7"
version = "0.6.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e"
checksum = "238b90427dfad9da4a9abd60f3ec1cdee6b80454bde49ed37f1781dd8e9dc7f9"
dependencies = [
"proc-macro2",
"quote",
@@ -706,9 +709,9 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.19.0"
version = "3.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
[[package]]
name = "byte-tools"
@@ -784,20 +787,21 @@ dependencies = [
[[package]]
name = "camino"
version = "1.2.1"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609"
checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
dependencies = [
"serde_core",
]
[[package]]
name = "cargo-platform"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "122ec45a44b270afd1402f351b782c676b173e3c3fb28d86ff7ebfb4d86a4ee4"
checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082"
dependencies = [
"serde",
"serde_core",
]
[[package]]
@@ -816,9 +820,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.48"
version = "1.2.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a"
checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -922,7 +926,7 @@ version = "4.5.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
dependencies = [
"heck 0.5.0",
"heck",
"proc-macro2",
"quote",
"syn 2.0.111",
@@ -1047,6 +1051,15 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
[[package]]
name = "convert_case"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "core-foundation"
version = "0.9.4"
@@ -1279,7 +1292,7 @@ checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa"
dependencies = [
"cssparser-macros",
"dtoa-short",
"itoa 1.0.15",
"itoa 1.0.17",
"phf 0.11.3",
"smallvec 1.15.1",
]
@@ -1292,7 +1305,7 @@ checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
dependencies = [
"cssparser-macros",
"dtoa-short",
"itoa 1.0.15",
"itoa 1.0.17",
"phf 0.13.1",
"smallvec 1.15.1",
]
@@ -1458,21 +1471,23 @@ dependencies = [
[[package]]
name = "derive_more"
version = "2.0.1"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
dependencies = [
"derive_more-impl",
]
[[package]]
name = "derive_more-impl"
version = "2.0.1"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
"rustc_version 0.4.1",
"syn 2.0.111",
"unicode-xid",
]
@@ -1576,9 +1591,9 @@ checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc"
[[package]]
name = "dtoa"
version = "1.0.10"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04"
checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590"
[[package]]
name = "dtoa-short"
@@ -1700,19 +1715,19 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "find-msvc-tools"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff"
[[package]]
name = "flate2"
version = "1.1.7"
version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2152dbcb980c05735e2a651d96011320a949eb31a0c8b38b72645ce97dec676"
checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
dependencies = [
"crc32fast",
"libz-rs-sys",
"miniz_oxide",
"zlib-rs",
]
[[package]]
@@ -1994,9 +2009,9 @@ dependencies = [
[[package]]
name = "git2"
version = "0.20.2"
version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110"
checksum = "3e2b37e2f62729cdada11f0e6b3b6fe383c69c29fc619e391223e12856af308c"
dependencies = [
"bitflags 2.10.0",
"libc",
@@ -2126,9 +2141,9 @@ dependencies = [
[[package]]
name = "graphql-introspection-query"
version = "0.2.0"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d"
checksum = "e063446242093b0acecc78a2313801e6c4faafa3501277b409a2b1972eff5d85"
dependencies = [
"serde",
]
@@ -2145,9 +2160,9 @@ dependencies = [
[[package]]
name = "graphql_client"
version = "0.14.0"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b"
checksum = "83ce10ae0a8ba29e295f9296a4a400a5222b1aa0e65a72d66c5e489ed17fa217"
dependencies = [
"graphql_query_derive",
"serde",
@@ -2156,30 +2171,30 @@ dependencies = [
[[package]]
name = "graphql_client_codegen"
version = "0.14.0"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a"
checksum = "61d9d9d96a7397130da7ce3664851f51ce850137e62b030ac78c8a529661151a"
dependencies = [
"graphql-introspection-query",
"graphql-parser",
"heck 0.4.1",
"heck",
"lazy_static",
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn 1.0.109",
"syn 2.0.111",
]
[[package]]
name = "graphql_query_derive"
version = "0.14.0"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97"
checksum = "b684c77d1b5f9c6006068852e0e0e80c6df3ef85c24fe81ef26fbadbd595af77"
dependencies = [
"graphql_client_codegen",
"proc-macro2",
"syn 1.0.109",
"syn 2.0.111",
]
[[package]]
@@ -2341,12 +2356,6 @@ dependencies = [
"http 1.4.0",
]
[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "heck"
version = "0.5.0"
@@ -2479,7 +2488,7 @@ checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [
"bytes 1.11.0",
"fnv",
"itoa 1.0.15",
"itoa 1.0.17",
]
[[package]]
@@ -2489,7 +2498,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
dependencies = [
"bytes 1.11.0",
"itoa 1.0.15",
"itoa 1.0.17",
]
[[package]]
@@ -2552,9 +2561,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]]
name = "human_format"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c3b1f728c459d27b12448862017b96ad4767b1ec2ec5e6434e99f1577f085b8"
checksum = "d25ee8b384f026b807af17d995367433856266c5103390cfa6a01608a0039ce8"
[[package]]
name = "humantime"
@@ -2607,7 +2616,7 @@ dependencies = [
"http-body 0.4.6",
"httparse",
"httpdate",
"itoa 1.0.15",
"itoa 1.0.17",
"pin-project-lite",
"socket2 0.5.10",
"tokio 1.48.0",
@@ -2631,7 +2640,7 @@ dependencies = [
"http-body 1.0.1",
"httparse",
"httpdate",
"itoa 1.0.15",
"itoa 1.0.17",
"pin-project-lite",
"pin-utils",
"smallvec 1.15.1",
@@ -2713,9 +2722,9 @@ dependencies = [
[[package]]
name = "hyper-util"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56"
checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f"
dependencies = [
"base64 0.22.1",
"bytes 1.11.0",
@@ -2827,9 +2836,9 @@ checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
[[package]]
name = "icu_properties"
version = "2.1.1"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99"
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
dependencies = [
"icu_collections",
"icu_locale_core",
@@ -2841,9 +2850,9 @@ dependencies = [
[[package]]
name = "icu_properties_data"
version = "2.1.1"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899"
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
[[package]]
name = "icu_provider"
@@ -2989,9 +2998,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
[[package]]
name = "iri-string"
version = "0.7.9"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397"
checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a"
dependencies = [
"memchr",
"serde",
@@ -3020,9 +3029,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
version = "1.0.15"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
[[package]]
name = "jobserver"
@@ -3065,7 +3074,21 @@ dependencies = [
[[package]]
name = "letterbox-notmuch"
version = "0.17.54"
version = "0.17.55"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "e4d1d65ae37e0b9efbee0daf341e7e5ea2db8ae78e4ea429359c671163636283"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.17",
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.56"
dependencies = [
"itertools",
"log",
@@ -3078,28 +3101,14 @@ dependencies = [
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.54"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "9748050a702e10d7f84a605a921988e9d03b3a36b52e06268e879fc8595dab9f"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.17",
"tracing",
]
[[package]]
name = "letterbox-procmail2notmuch"
version = "0.17.54"
version = "0.17.56"
dependencies = [
"anyhow",
"clap",
"letterbox-notmuch 0.17.54 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-shared 0.17.54 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-notmuch 0.17.55",
"letterbox-shared 0.17.55",
"serde",
"sqlx",
"tokio 1.48.0",
@@ -3107,7 +3116,7 @@ dependencies = [
[[package]]
name = "letterbox-server"
version = "0.17.54"
version = "0.17.56"
dependencies = [
"ammonia",
"anyhow",
@@ -3130,8 +3139,8 @@ dependencies = [
"html-escape",
"html2text",
"ical",
"letterbox-notmuch 0.17.54",
"letterbox-shared 0.17.54",
"letterbox-notmuch 0.17.56",
"letterbox-shared 0.17.56",
"linkify",
"lol_html",
"mailparse",
@@ -3157,10 +3166,12 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.54"
version = "0.17.55"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "efcc3a59edbda7b3a9ac419bafafd5da8fea7a757fcffd5bfd88b28fba1ad97f"
dependencies = [
"build-info",
"letterbox-notmuch 0.17.54",
"letterbox-notmuch 0.17.55",
"regex",
"serde",
"sqlx",
@@ -3170,12 +3181,10 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.54"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "72037ead29cbc1d3c57c551c2d12ad494974b46b732edbe7a17b496af31a5381"
version = "0.17.56"
dependencies = [
"build-info",
"letterbox-notmuch 0.17.54 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-notmuch 0.17.56",
"regex",
"serde",
"sqlx",
@@ -3185,7 +3194,7 @@ dependencies = [
[[package]]
name = "letterbox-web"
version = "0.17.54"
version = "0.17.56"
dependencies = [
"build-info",
"build-info-build",
@@ -3197,7 +3206,7 @@ dependencies = [
"graphql_client",
"human_format",
"itertools",
"letterbox-shared 0.17.54",
"letterbox-shared 0.17.56",
"log",
"seed",
"seed_hooks",
@@ -3225,15 +3234,15 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7"
[[package]]
name = "libc"
version = "0.2.177"
version = "0.2.178"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
[[package]]
name = "libgit2-sys"
version = "0.18.2+1.9.1"
version = "0.18.3+1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222"
checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487"
dependencies = [
"cc",
"libc",
@@ -3249,13 +3258,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
[[package]]
name = "libredox"
version = "0.1.10"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
dependencies = [
"bitflags 2.10.0",
"libc",
"redox_syscall 0.5.18",
"redox_syscall 0.7.0",
]
[[package]]
@@ -3268,6 +3277,15 @@ dependencies = [
"vcpkg",
]
[[package]]
name = "libz-rs-sys"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415"
dependencies = [
"zlib-rs",
]
[[package]]
name = "libz-sys"
version = "1.1.23"
@@ -3583,9 +3601,9 @@ dependencies = [
[[package]]
name = "mio"
version = "1.1.0"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
dependencies = [
"libc",
"wasi 0.11.1+wasi-snapshot-preview1",
@@ -4413,9 +4431,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.103"
version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0"
dependencies = [
"unicode-ident",
]
@@ -4646,7 +4664,7 @@ checksum = "1bc42f3a12fd4408ce64d8efef67048a924e543bd35c6591c0447fda9054695f"
dependencies = [
"arc-swap",
"combine",
"itoa 1.0.15",
"itoa 1.0.17",
"num-bigint",
"percent-encoding",
"r2d2",
@@ -4680,6 +4698,15 @@ dependencies = [
"bitflags 2.10.0",
]
[[package]]
name = "redox_syscall"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
dependencies = [
"bitflags 2.10.0",
]
[[package]]
name = "redox_users"
version = "0.3.5"
@@ -4733,9 +4760,9 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
[[package]]
name = "reqwest"
version = "0.12.24"
version = "0.12.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f"
checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
dependencies = [
"base64 0.22.1",
"bytes 1.11.0",
@@ -5023,9 +5050,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "1.1.2"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
dependencies = [
"bitflags 2.10.0",
"errno",
@@ -5063,9 +5090,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
version = "1.13.1"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c"
checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282"
dependencies = [
"web-time",
"zeroize",
@@ -5090,9 +5117,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
[[package]]
name = "ryu"
version = "1.0.20"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
[[package]]
name = "schannel"
@@ -5312,15 +5339,15 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.145"
version = "1.0.148"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da"
dependencies = [
"itoa 1.0.15",
"itoa 1.0.17",
"memchr",
"ryu",
"serde",
"serde_core",
"zmij",
]
[[package]]
@@ -5329,7 +5356,7 @@ version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
dependencies = [
"itoa 1.0.15",
"itoa 1.0.17",
"serde",
"serde_core",
]
@@ -5341,7 +5368,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
"itoa 1.0.15",
"itoa 1.0.17",
"ryu",
"serde",
]
@@ -5431,10 +5458,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signal-hook-registry"
version = "1.4.7"
version = "1.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad"
checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
dependencies = [
"errno",
"libc",
]
@@ -5450,9 +5478,9 @@ dependencies = [
[[package]]
name = "simd-adler32"
version = "0.3.7"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
[[package]]
name = "siphasher"
@@ -5477,9 +5505,9 @@ checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
[[package]]
name = "slotmap"
version = "1.0.7"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038"
dependencies = [
"version_check",
]
@@ -5610,7 +5638,7 @@ checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b"
dependencies = [
"dotenvy",
"either",
"heck 0.5.0",
"heck",
"hex",
"once_cell",
"proc-macro2",
@@ -5651,7 +5679,7 @@ dependencies = [
"hex",
"hkdf",
"hmac 0.12.1",
"itoa 1.0.15",
"itoa 1.0.17",
"log",
"md-5 0.10.6",
"memchr",
@@ -5691,7 +5719,7 @@ dependencies = [
"hkdf",
"hmac 0.12.1",
"home",
"itoa 1.0.15",
"itoa 1.0.17",
"log",
"md-5 0.10.6",
"memchr",
@@ -5842,7 +5870,7 @@ version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
"heck 0.5.0",
"heck",
"proc-macro2",
"quote",
"rustversion",
@@ -5855,7 +5883,7 @@ version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
dependencies = [
"heck 0.5.0",
"heck",
"proc-macro2",
"quote",
"syn 2.0.111",
@@ -6084,9 +6112,9 @@ dependencies = [
[[package]]
name = "tempfile"
version = "3.23.0"
version = "3.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
dependencies = [
"fastrand",
"getrandom 0.3.4",
@@ -6173,7 +6201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
dependencies = [
"deranged",
"itoa 1.0.15",
"itoa 1.0.17",
"num-conv",
"powerfmt",
"serde",
@@ -6254,7 +6282,7 @@ checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
dependencies = [
"bytes 1.11.0",
"libc",
"mio 1.1.0",
"mio 1.1.1",
"pin-project-lite",
"signal-hook-registry",
"socket2 0.6.1",
@@ -6538,18 +6566,18 @@ dependencies = [
[[package]]
name = "toml_datetime"
version = "0.7.3"
version = "0.7.5+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_edit"
version = "0.23.7"
version = "0.23.10+spec-1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
dependencies = [
"indexmap 2.12.1",
"toml_datetime",
@@ -6559,9 +6587,9 @@ dependencies = [
[[package]]
name = "toml_parser"
version = "1.0.4"
version = "1.0.6+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
dependencies = [
"winnow",
]
@@ -6652,9 +6680,9 @@ dependencies = [
[[package]]
name = "tower-http"
version = "0.6.7"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456"
checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
dependencies = [
"bitflags 2.10.0",
"bytes 1.11.0",
@@ -6683,9 +6711,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
version = "0.1.43"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647"
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
dependencies = [
"log",
"pin-project-lite",
@@ -6718,9 +6746,9 @@ dependencies = [
[[package]]
name = "tracing-core"
version = "0.1.35"
version = "0.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
dependencies = [
"once_cell",
"valuable",
@@ -6842,6 +6870,12 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d"
[[package]]
name = "unicode-segmentation"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
[[package]]
name = "unicode-width"
version = "0.2.2"
@@ -7699,9 +7733,15 @@ dependencies = [
[[package]]
name = "zlib-rs"
version = "0.5.3"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36134c44663532e6519d7a6dfdbbe06f6f8192bde8ae9ed076e9b213f0e31df7"
checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
[[package]]
name = "zmij"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f4a4e8e9dc5c62d159f04fcdbe07f4c3fb710415aab4754bf11505501e3251d"
[[package]]
name = "zopfli"

View File

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

View File

@@ -195,8 +195,16 @@ pub fn extract_calendar_metadata_from_mail(
}
}
if let (Some(sm), Some(em)) = (month_num(start_month), month_num(end_month)) {
let current_year = chrono::Local::now().year().to_string();
let start = format!("{}{}{}", current_year, sm, format!("{:0>2}", start_day));
// If start month is later in calendar year than end month, start is in previous year
let sm_num: u32 = sm.parse().unwrap_or(1);
let em_num: u32 = em.parse().unwrap_or(1);
let end_year = year.parse::<i32>().unwrap_or_else(|_| chrono::Local::now().year());
let start_year: i32 = if sm_num > em_num {
end_year - 1
} else {
end_year
};
let start = format!("{}{}{}", start_year, sm, format!("{:0>2}", start_day));
let mut end_date_val = chrono::NaiveDate::parse_from_str(&format!("{}-{}-{}", year, em, format!("{:0>2}", end_day)), "%Y-%m-%d").ok();
if let Some(d) = end_date_val.as_mut() {
*d = d.succ_opt().unwrap_or(*d);
@@ -2307,8 +2315,8 @@ mod tests {
Some("calendar-notification@google.com".to_string())
);
// Dates: from subject, Thu Sep 11 to Fri Jan 30, 2026
let current_year = chrono::Local::now().year();
assert_eq!(meta.start_date, Some(format!("{}0911", current_year)));
// Start date is Sep 11, 2025 (one year before end since Sep > Jan)
assert_eq!(meta.start_date, Some("20250911".to_string()));
assert_eq!(meta.end_date, Some("20260131".to_string()));
}
#[test]
@@ -2408,8 +2416,8 @@ mod tests {
Some("calendar-notification@google.com".to_string())
);
// Dates: from subject, Thu Sep 11 to Fri Jan 30, 2026
let current_year = chrono::Local::now().year();
assert_eq!(meta.start_date, Some(format!("{}0911", current_year)));
// Start date is Sep 11, 2025 (one year before end since Sep > Jan)
assert_eq!(meta.start_date, Some("20250911".to_string()));
assert_eq!(meta.end_date, Some("20260131".to_string()));
// Debug: print the rendered HTML for inspection
if let Some(ref html) = meta.body_html {
@@ -2442,8 +2450,8 @@ mod tests {
Some("calendar-notification@google.com".to_string())
);
// Assert that the start and end dates are present
let current_year = chrono::Local::now().year();
assert_eq!(meta.start_date, Some(format!("{}0911", current_year)));
// Start date is Sep 11, 2025 (one year before end since Sep > Jan)
assert_eq!(meta.start_date, Some("20250911".to_string()));
assert_eq!(meta.end_date, Some("20260131".to_string()));
// Assert that the HTML body contains recurrence info
if let Some(ref html) = meta.body_html {

View File

@@ -24,7 +24,7 @@ serde = { version = "1.0.219", features = ["derive"] }
itertools = "0.14.0"
serde_json = { version = "1.0.140", features = ["unbounded_depth"] }
chrono = "0.4.40"
graphql_client = "0.14.0"
graphql_client = "0.15.0"
thiserror = "2.0.12"
gloo-net = { version = "0.6.0", features = ["json", "serde_json"] }
human_format = "1.1.0"

View File

@@ -351,8 +351,8 @@ fn search_results(
attrs! {
At::Href => urls::thread(&tid)
},
div![title_break, &r.subject],
span![C!["text-xs"], pretty_authors(&r.authors)],
div![C!["line-clamp-2"], title_break, &r.subject],
span![C!["line-clamp-2", "text-xs"], pretty_authors(&r.authors)],
div![
C!["flex", "flex-wrap", "justify-between"],
span![tags_chiclet(&tags)],