From 5b9c888b72a34ea80f0435df61e70ed4b21476df Mon Sep 17 00:00:00 2001 From: sudolulo Date: Fri, 19 Jun 2026 19:01:14 +0000 Subject: [PATCH] Add CHANGELOG for v0.0.1 and v0.0.2 --- CHANGELOG.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..77f8f36 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changelog + +## v0.0.2 — 2026-06-19 + +### Fixed + +- **B2 backup failing with `NotImplementedError` after a TrueNAS update.** + The patch block's guard (`if "get_restic_config" not in B2RcloneRemote.__dict__`) + could misfire and silently skip injecting the method — most likely when a + TrueNAS version adds a stub that raises `NotImplementedError`, causing the dict + check to return `False`. The guard is removed; the assignment is now + unconditional. This is safe because the native-support kill switch already + prevents patching when TrueNAS ships a real, working implementation. + +- **Native-support check falsely triggering kill switch on stubs.** + The check now inspects the source of any pre-existing `get_restic_config` + before concluding that TrueNAS has shipped native B2 support. If the method + body contains `NotImplementedError` it is treated as a stub and patching + continues; only a method that does not raise `NotImplementedError` triggers + the kill switch and auto-disable. + +--- + +## v0.0.1 — 2026-06-16 + +Initial public release. Extends TrueNAS SCALE's TrueCloud Backup feature to +work with S3-compatible providers and native Backblaze B2 in addition to Storj, +using volatile overlayfs patching of the TrueNAS middleware that persists across +system updates via a PREINIT initshutdownscript. + +### Included + +- `install.sh` — registers the PREINIT boot hook and applies patches immediately +- `patch/apply.sh` — PREINIT script; mounts writable overlays, patches `b2.py` + and `restic.py`, patches the Angular UI bundle to widen the credential dropdown +- `patch/create_task.py` — CLI to create TrueCloud Backup tasks with S3 or B2 + credentials, bypassing the Storj-only restriction in the UI +- `recover.sh` — emergency recovery; sets the kill switch and restarts middlewared +- `uninstall.sh` — full removal of the patch and PREINIT hook +- Kill switch support (`disabled` file) for safe degradation +- Auto-disable when TrueNAS ships native B2 restic support +- `hook_status.json` written on each boot for `create_task.py verify`