Tags: reactiveui/Akavache
Tags
ci(release): allow releasing from a historical ref Add an optional 'sourceRef' workflow_dispatch input (default empty = this branch, normally main). When set to a tag/branch/SHA it is passed to the reusable release workflow's 'ref' so historical source is built and signed with the current pipeline, and the new release tag is pinned to that commit via 'target'.
fix: read Akavache 11.x encrypted databases with v12 (#1192) * fix: read Akavache 11.x encrypted databases by falling back to SQLCipher-4 compat mode and rekeying forward to the modern cipher Akavache 11.x linked SQLitePCLRaw.bundle_e_sqlcipher (SQLCipher 4 — PBKDF2-SHA512, AES-256-CBC, 256k iterations). v12 swapped the native bundle for SQLite3MC.PCLRaw.bundle, whose PRAGMA key derivation defaults to ChaCha20-Poly1305. The two are incompatible: opening a v11 database with v12 surfaces SQLITE_NOTADB on the first PRAGMA after `sqlite3_open`, and the user's data is unreadable through the v12 public API. This patch keeps the modern cipher as the default for new files and adds aone-shot legacy fallback for existing v11 files: 1. Open the database and apply PRAGMA key on the modern cipher. 2. Probe with `PRAGMA journal_mode=WAL`. On success, continue normally. 3. On SQLITE_NOTADB *with a password*, dispose the handle and re-open with SQLite3MC's SQLCipher-4 shim: PRAGMA cipher = 'sqlcipher'; PRAGMA legacy = 4; PRAGMA key = '<password>'; then touch page 1 (`SELECT count(*) FROM sqlite_master`) to confirm the password is genuinely correct (a wrong password still throws). 4. Switch the cipher back (`PRAGMA cipher = 'chacha20'`) and rekey in place (`PRAGMA rekey = '<password>'`). The next open of this file takes the fast modern path — the migration is a one-time cost on first read after upgrade. The fallback is gated on `#if ENCRYPTED`, so the unencrypted Akavache.Sqlite3 assembly is unchanged. Behaviour for new databases is unchanged: callers without a password skip the encrypted path entirely, and freshly-created encrypted databases write SQLite3MC's modern cipher from the start. * Use SupressMessage attributes instead of pragmas for warning suppresion * Use specific exception type in test.
fix: read Akavache 11.x encrypted databases with v12 (#1192) * fix: read Akavache 11.x encrypted databases by falling back to SQLCipher-4 compat mode and rekeying forward to the modern cipher Akavache 11.x linked SQLitePCLRaw.bundle_e_sqlcipher (SQLCipher 4 — PBKDF2-SHA512, AES-256-CBC, 256k iterations). v12 swapped the native bundle for SQLite3MC.PCLRaw.bundle, whose PRAGMA key derivation defaults to ChaCha20-Poly1305. The two are incompatible: opening a v11 database with v12 surfaces SQLITE_NOTADB on the first PRAGMA after `sqlite3_open`, and the user's data is unreadable through the v12 public API. This patch keeps the modern cipher as the default for new files and adds aone-shot legacy fallback for existing v11 files: 1. Open the database and apply PRAGMA key on the modern cipher. 2. Probe with `PRAGMA journal_mode=WAL`. On success, continue normally. 3. On SQLITE_NOTADB *with a password*, dispose the handle and re-open with SQLite3MC's SQLCipher-4 shim: PRAGMA cipher = 'sqlcipher'; PRAGMA legacy = 4; PRAGMA key = '<password>'; then touch page 1 (`SELECT count(*) FROM sqlite_master`) to confirm the password is genuinely correct (a wrong password still throws). 4. Switch the cipher back (`PRAGMA cipher = 'chacha20'`) and rekey in place (`PRAGMA rekey = '<password>'`). The next open of this file takes the fast modern path — the migration is a one-time cost on first read after upgrade. The fallback is gated on `#if ENCRYPTED`, so the unencrypted Akavache.Sqlite3 assembly is unchanged. Behaviour for new databases is unchanged: callers without a password skip the encrypted path entirely, and freshly-created encrypted databases write SQLite3MC's modern cipher from the start. * Use SupressMessage attributes instead of pragmas for warning suppresion * Use specific exception type in test.
chore: Rename Akavache.Http → Akavache.HttpDownloader to avoid NuGet … …name collision (#1186) * Initial plan * feat: rename Akavache.Http to Akavache.HttpDownloader - Renamed production project folder src/Akavache.Http/ → src/Akavache.HttpDownloader/ - Renamed Akavache.Http.csproj → Akavache.HttpDownloader.csproj - Updated Description to "HTTP download and caching extensions for Akavache" - Updated InternalsVisibleTo from Akavache.Http.Tests → Akavache.HttpDownloader.Tests - Renamed test project folder src/tests/Akavache.Http.Tests/ → src/tests/Akavache.HttpDownloader.Tests/ - Renamed Akavache.Http.Tests.csproj → Akavache.HttpDownloader.Tests.csproj - Updated namespace in GlobalTestHooks.cs to Akavache.HttpDownloader.Tests - Updated Akavache.slnx project paths - Updated InternalsVisibleTo in Akavache.Core, Akavache.Sqlite3, Akavache.EncryptedSqlite3 - Updated ProjectReference in Akavache.Drawing and all affected test csproj files - Updated CLAUDE.md and .github/copilot-instructions.md documentation Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/dadd7383-80d3-4ede-a8ef-f2b21589978c Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * docs: add Akavache.HttpDownloader to README optional extensions Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/8bfccb95-2dbd-408e-b715-ff9d2d085a67 Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * docs: add NuGet packages table to README with badges and links Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/32f8bbef-e3da-4d52-b6af-5f27fad32b8b Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * docs: add NuGet packages table to README with badges and links Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/32f8bbef-e3da-4d52-b6af-5f27fad32b8b Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * docs: add NuGet packages table to README with badges and links Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/32f8bbef-e3da-4d52-b6af-5f27fad32b8b Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * docs: remove raw binary LFS files from commit (Images/logo.png, assets/Logo.psd) Agent-Logs-Url: https://github.com/reactiveui/Akavache/sessions/f197b7a3-113d-4c94-9a92-ccaafdfc8c6b Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com>
Fix nullability issues and update package references (#1102) Resolved nullability warnings in SerializerExtensionsTests by using null-forgiving operator and updating delegate type. Removed Microsoft.Maui.Controls package reference from Directory.Packages.props.
PreviousNext