main
tag: launch-2026-06-01
tag: magicmirror-v0.1.1
tag: magicmirror-v0.3.0
tag: mnw-cli-v0.1.2
tag: mnw-cli-v0.1.3
tag: mnw-cli-v0.1.4
tag: pom-v0.4.1
tag: pom-v0.4.2
tag: pom-v0.4.3
tag: pom-v0.4.4
tag: pom-v0.4.5
tag: wam-v0.3.0
tag: wam-v0.3.1
Files
Commits
Tags
Notes
Issues
Bump git2 to 0.21, infer to 0.22, bzip2 to 0.6 in the server
git2 0.21 is not the no-op the version jump suggests: Signature::name,
TreeEntry::name and Reference::shorthand now return Result rather than
Option, Blame::final_signature returns Option<Signature>, and the
StringArray iterator yields Result<Option<&str>, Error>. Adjusted the
four call sites in src/git accordingly; behaviour is unchanged.
object stays at 0.37. authenticode 0.5 implements PeTrait for object
0.37's PeFile, so bumping object alone breaks Windows signature
scanning. authenticode 0.6 requires object 0.39, which makes object part
of the x509/authenticode cluster rather than a standalone bump.
Co-Authored-By
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 files changed,
+21 insertions,
-35 deletions
1573
1573
1574
1574
[[package]]
1575
1575
name = "cfb"
1576
-
version = "0.7.3"
1576
+
version = "0.14.0"
1577
1577
source = "registry+https://github.com/rust-lang/crates.io-index"
1578
-
checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
1578
+
checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3"
1579
1579
dependencies = [
1580
-
"byteorder",
1581
1580
"fnv",
1582
1581
"uuid",
1582
+
"web-time",
1583
1583
]
1584
1584
1585
1585
[[package]]
3163
3163
3164
3164
[[package]]
3165
3165
name = "git2"
3166
-
version = "0.20.4"
3166
+
version = "0.21.0"
3167
3167
source = "registry+https://github.com/rust-lang/crates.io-index"
3168
-
checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b"
3168
+
checksum = "ddddbf932745a6be37109b6112d3ee09696106f848449069d3a57bba937ab82e"
3169
3169
dependencies = [
3170
3170
"bitflags 2.13.0",
3171
3171
"libc",
3172
3172
"libgit2-sys",
3173
3173
"log",
3174
-
"openssl-probe 0.1.6",
3175
-
"openssl-sys",
3176
-
"url",
3177
3174
]
3178
3175
3179
3176
[[package]]
3855
3852
3856
3853
[[package]]
3857
3854
name = "infer"
3858
-
version = "0.19.0"
3855
+
version = "0.22.0"
3859
3856
source = "registry+https://github.com/rust-lang/crates.io-index"
3860
-
checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
3857
+
checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4"
3861
3858
dependencies = [
3862
3859
"cfb",
3863
3860
]
4089
4086
dependencies = [
4090
4087
"cc",
4091
4088
"libc",
4092
-
"libssh2-sys",
4093
4089
"libz-sys",
4094
-
"openssl-sys",
4095
4090
"pkg-config",
4096
4091
]
4097
4092
4123
4118
"vcpkg",
4124
4119
]
4125
4120
4126
-
[[package]]
4127
-
name = "libssh2-sys"
4128
-
version = "0.3.2"
4129
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4130
-
checksum = "c04141a07bb0c0bc461cb657808764de571702a59bc5c726c400ac9a7625e3ab"
4131
-
dependencies = [
4132
-
"cc",
4133
-
"libc",
4134
-
"libz-sys",
4135
-
"openssl-sys",
4136
-
"pkg-config",
4137
-
"vcpkg",
4138
-
]
4139
-
4140
4121
[[package]]
4141
4122
name = "libz-sys"
4142
4123
version = "1.1.29"
4339
4320
"axum-extra",
4340
4321
"base64 0.22.1",
4341
4322
"bytes",
4342
-
"bzip2 0.4.4",
4323
+
"bzip2 0.6.1",
4343
4324
"chacha20poly1305",
4344
4325
"chrono",
4345
4326
"clap",
83
83
tempfile = "3"
84
84
85
85
# File scanning
86
-
infer = "0.19"
86
+
infer = "0.22"
87
87
goblin = "0.10"
88
88
zip = "8.2"
89
89
# Single-stream decompressors for archive-bomb detection (already in the tree
90
90
# transitively via `zip`; pinned to the resolved versions so no new build).
91
91
flate2 = "1"
92
-
bzip2 = "0.4"
92
+
bzip2 = "0.6"
93
93
xz2 = "0.1"
94
94
zstd = "0.13"
95
95
yara-x = "1.16"
127
127
makeover = "1.0.0"
128
128
129
129
# Git source browser
130
-
git2 = { version = "0.20", features = ["vendored-libgit2"] }
130
+
git2 = { version = "0.21", features = ["vendored-libgit2"] }
131
131
syntect = { version = "5", default-features = false, features = ["default-syntaxes", "default-themes", "html", "regex-fancy"] }
132
132
regex = "1"
133
133
semver = "1"
363
363
let short_oid = oid_str[..7.min(oid_str.len())].to_string();
364
364
365
365
let sig = hunk.final_signature();
366
-
let author_name = sig.name().unwrap_or("Unknown").to_string();
367
-
let time_formatted = chrono::DateTime::from_timestamp(sig.when().seconds(), 0)
366
+
let author_name = sig
367
+
.as_ref()
368
+
.and_then(|s| s.name().ok())
369
+
.unwrap_or("Unknown")
370
+
.to_string();
371
+
let when = sig.as_ref().map(|s| s.when().seconds()).unwrap_or_default();
372
+
let time_formatted = chrono::DateTime::from_timestamp(when, 0)
368
373
.unwrap_or_default()
369
374
.format("%Y-%m-%d")
370
375
.to_string();
278
278
let default_branch = repo
279
279
.head()
280
280
.ok()
281
-
.and_then(|r| r.shorthand().map(String::from))
281
+
.and_then(|r| r.shorthand().ok().map(String::from))
282
282
.unwrap_or_else(|| "main".to_string());
283
283
284
284
RepoInfo {
31
31
let mut items: Vec<TreeItem> = target_tree
32
32
.iter()
33
33
.filter_map(|entry| {
34
-
let name = entry.name()?.to_string();
34
+
let name = entry.name().ok()?.to_string();
35
35
let kind = match entry.kind()? {
36
36
ObjectType::Tree => TreeItemKind::Dir,
37
37
ObjectType::Blob => TreeItemKind::File,
54
54
}
55
55
56
56
if let Ok(tags) = repo.tag_names(None) {
57
-
for tag in tags.iter().flatten() {
57
+
for tag in tags.iter().flatten().flatten() {
58
58
refs.push(RefInfo {
59
59
name: tag.to_string(),
60
60
is_branch: false,