v3.9.4
Changelog (Commits)
- bump: version v3.9.4 (df9c1c1)
- style: format code according to .editorconfig rules across all solutions (c2b99b2)
- fix: strict directory change matching and restore stale provider cache during reload (6be4841)
- refactor: clean up redundant change tracking code and enforce line limits (f914b35)
- feat: implement network and WSL drive indexing system with scheduled background updates and status tracking (df2dab7)
- fix: a provider being reloaded keeps answering from what it already had (f8e7750)
- fix: the background service can be told how much to log (cb00cc6)
Security Verification
SHA-256 Checksums
- SwiftList-Setup.exe (x64):
556fed5fa9b8633dc0a1ab1f6e7f8df1c3fad3c54909779b2107aacead14508c - SwiftList-Portable.zip (x64):
ac1d9f5317cb06e437ea251c03c509303b438738b5df603dbc33740979856f53 - SwiftList-Setup_arm64.exe (arm64):
96a58f5c5b8e09a98acbef39dc16b317f17540de04cd01cc23347690b70e8477 - SwiftList-Portable_arm64.zip (arm64):
50ba5982b4cd657f07179591335de74b3a6f1578ea06af55e2dd5223cc0dee47
Signature Verification (ECDsa NistP256)
The portable ZIP release is signed using our official release key.
To verify the signature manually using OpenSSL:
# 1. Save the public key shown above to 'public_key.pem'
# 2. Run the following command:
openssl dgst -sha256 -verify public_key.pem -signature SwiftList-Portable.zip.sig SwiftList-Portable.zip
# Expected output: Verified OKTo verify the signature manually in PowerShell (.NET 5.0+):
$zipBytes = [System.IO.File]::ReadAllBytes('SwiftList-Portable.zip')
$sigBytes = [System.IO.File]::ReadAllBytes('SwiftList-Portable.zip.sig')
$ecdsa = [System.Security.Cryptography.ECDsa]::Create()
$pubKeyPem = '-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEA8CUYlnSks5CMNM3wPz9NTMg8kbs
tEcU4mtgkW0OScTVRO3IhEb6j4H4cjgvM/gyM2sumFpbBR9+VtvVr46nFQ==
-----END PUBLIC KEY-----'
$ecdsa.ImportFromPem($pubKeyPem)
$ecdsa.VerifyData($zipBytes, $sigBytes, [System.Security.Cryptography.HashAlgorithmName]::SHA256, [System.Security.Cryptography.DSASignatureFormat]::Rfc3279DerSequence)
# Expected output: True