diff --git a/.changeset/drain-ftwdb-shadow-on-shutdown.md b/.changeset/drain-ftwdb-shadow-on-shutdown.md deleted file mode 100644 index 604c72a94..000000000 --- a/.changeset/drain-ftwdb-shadow-on-shutdown.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": patch ---- - -Drain queued FTWDB shadow history for up to two seconds on normal shutdown and update, after hardware stops. Retry lost acknowledgements with the same commit and report any unconfirmed ticks when the sidecar cannot complete the copy. diff --git a/.changeset/mobile-update-dialog.md b/.changeset/mobile-update-dialog.md deleted file mode 100644 index eee1d80fc..000000000 --- a/.changeset/mobile-update-dialog.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"ftw": patch ---- - -Show Updates from the mobile More page while the header menu is closed. -Keep the backup section open and preserve its scroll position during creation, -verification and completion. -Let backup controls and timestamps fit the mobile dialog. diff --git a/.changeset/physical-planner-topologies.md b/.changeset/physical-planner-topologies.md deleted file mode 100644 index e7f010ad9..000000000 --- a/.changeset/physical-planner-topologies.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": minor ---- - -Plan sites with no home battery, several batteries or several EVs with the bundled Energyplan worker. Keep each asset's limits and energy target, validate worker identities and deadlines, and carry each battery's energy budget through Core control. Only count verified PV generation control, and stop using its plan when the driver or its health changes. Keep the previous plan for diagnosis when the fallback cannot represent the site. diff --git a/.changeset/planner-admission-budget.md b/.changeset/planner-admission-budget.md deleted file mode 100644 index 0e8e7a3b2..000000000 --- a/.changeset/planner-admission-budget.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": patch ---- - -Keep sites without a home battery unavailable when Core DP is selected, and report the same reason in planner diagnostics. Keep Energyplan available for those sites. Match the documented worker budget to the request: Core's PV downside adjustment does not add scenarios or extend the budget on its own. diff --git a/.changeset/preserve-beta-driver-trust.md b/.changeset/preserve-beta-driver-trust.md deleted file mode 100644 index 61339b71d..000000000 --- a/.changeset/preserve-beta-driver-trust.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": patch ---- - -Keep official driver signature checks and read-only limits after repository names change. Use the trust recorded at installation and verify the saved manifest again; refuse an official driver if its saved manifest cannot be verified. diff --git a/.changeset/preserve-installed-driver-format.md b/.changeset/preserve-installed-driver-format.md deleted file mode 100644 index cb29828c6..000000000 --- a/.changeset/preserve-installed-driver-format.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"ftw": patch ---- - -Keep each managed driver's metadata format through restarts and rollback. A -Device Support package now requires its verified runtime policy even when -control is not selected, its repository is removed, or its envelope is missing. -Verified legacy installs retain their normal autonomous default. Older installs -with no recorded format need matching verified metadata; restore their repository -or reinstall them if that metadata is unavailable. diff --git a/.changeset/preserve-retained-package-on-reinstall.md b/.changeset/preserve-retained-package-on-reinstall.md deleted file mode 100644 index 0a549ac24..000000000 --- a/.changeset/preserve-retained-package-on-reinstall.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"ftw": patch ---- - -Check retained package metadata before reinstalling a driver from an older -database. Reject a change to direct-manifest format while a package envelope -remains, and require signed legacy metadata when its format is unknown. -A rejected reinstall preserves the active artifact and rollback record. diff --git a/.changeset/restore-legacy-driver-default.md b/.changeset/restore-legacy-driver-default.md deleted file mode 100644 index cb09670cc..000000000 --- a/.changeset/restore-legacy-driver-default.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": patch ---- - -Restore startup and autonomous default mode for retained legacy v1 drivers after their configured repository is removed. Keep official signature checks and control-v2 trust requirements unchanged. diff --git a/.changeset/settings-dialog-focus.md b/.changeset/settings-dialog-focus.md deleted file mode 100644 index 1efb528a5..000000000 --- a/.changeset/settings-dialog-focus.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"ftw": patch ---- - -Move focus into Settings when it opens, keep Tab within its visible controls, -and let Escape close it. Closing Settings returns focus to its opening button, -including the shortcut in More. The restart prompt keeps focus while open, -blocks the background, and returns focus when Restart later or Escape closes -the prompt. During a pending restart, focus stays in the prompt and Escape -does not close it. -Show restart progress only after Restart now starts the request. diff --git a/.changeset/verify-driver-runtime-selection.md b/.changeset/verify-driver-runtime-selection.md deleted file mode 100644 index 417e3e7e5..000000000 --- a/.changeset/verify-driver-runtime-selection.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ftw": patch ---- - -Match signed driver updates to the configured driver ID when bundled and repository filenames differ. Save the selected path, restore the bundled file by ID, and report fresh telemetry only for instances that actually restarted. Tell an open Settings dialog when it must reload the saved config before saving again. diff --git a/CHANGELOG.md b/CHANGELOG.md index 6018eb694..e6b4cc868 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## 3.1.0 + +### Minor Changes + +- a7f8f70: Plan sites with no home battery, several batteries or several EVs with the bundled Energyplan worker. Keep each asset's limits and energy target, validate worker identities and deadlines, and carry each battery's energy budget through Core control. Only count verified PV generation control, and stop using its plan when the driver or its health changes. Keep the previous plan for diagnosis when the fallback cannot represent the site. + +### Patch Changes + +- 522f29f: Drain queued FTWDB shadow history for up to two seconds on normal shutdown and update, after hardware stops. Retry lost acknowledgements with the same commit and report any unconfirmed ticks when the sidecar cannot complete the copy. +- d30576c: Show Updates from the mobile More page while the header menu is closed. + Keep the backup section open and preserve its scroll position during creation, + verification and completion. + Let backup controls and timestamps fit the mobile dialog. +- a45fda4: Keep sites without a home battery unavailable when Core DP is selected, and report the same reason in planner diagnostics. Keep Energyplan available for those sites. Match the documented worker budget to the request: Core's PV downside adjustment does not add scenarios or extend the budget on its own. +- f9cb680: Keep official driver signature checks and read-only limits after repository names change. Use the trust recorded at installation and verify the saved manifest again; refuse an official driver if its saved manifest cannot be verified. +- a001d50: Keep each managed driver's metadata format through restarts and rollback. A + Device Support package now requires its verified runtime policy even when + control is not selected, its repository is removed, or its envelope is missing. + Verified legacy installs retain their normal autonomous default. Older installs + with no recorded format need matching verified metadata; restore their repository + or reinstall them if that metadata is unavailable. +- fed3695: Check retained package metadata before reinstalling a driver from an older + database. Reject a change to direct-manifest format while a package envelope + remains, and require signed legacy metadata when its format is unknown. + A rejected reinstall preserves the active artifact and rollback record. +- 2e77a0f: Restore startup and autonomous default mode for retained legacy v1 drivers after their configured repository is removed. Keep official signature checks and control-v2 trust requirements unchanged. +- 0a98614: Move focus into Settings when it opens, keep Tab within its visible controls, + and let Escape close it. Closing Settings returns focus to its opening button, + including the shortcut in More. The restart prompt keeps focus while open, + blocks the background, and returns focus when Restart later or Escape closes + the prompt. During a pending restart, focus stays in the prompt and Escape + does not close it. + Show restart progress only after Restart now starts the request. +- f2ae6c6: Match signed driver updates to the configured driver ID when bundled and repository filenames differ. Save the selected path, restore the bundled file by ID, and report fresh telemetry only for instances that actually restarted. Tell an open Settings dialog when it must reload the saved config before saving again. + ## 3.0.3 ### Patch Changes diff --git a/package-lock.json b/package-lock.json index 021374c63..699defa1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ftw", - "version": "3.0.3", + "version": "3.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ftw", - "version": "3.0.3", + "version": "3.1.0", "devDependencies": { "@changesets/cli": "^3.0.1" } diff --git a/package.json b/package.json index cf1e70651..169d15dbe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ftw", - "version": "3.0.3", + "version": "3.1.0", "private": true, "type": "module", "description": "FTW — local-first home energy coordination. Version metadata only; the runtime is Go and the mathematical planner is the compiled Energyplan worker.",