From bf36b7621b2dd8f22b23be7762a23d2ff2fd942f Mon Sep 17 00:00:00 2001 From: Daniel Maksymilian Syrnicki Date: Tue, 11 Aug 2026 15:29:08 +0200 Subject: [PATCH] docs: changelog entries for the dependency-hook install fixes Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d4f764..dad334a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,26 @@ This project uses calendar versioning: `YY.N-stage` (e.g. `26.0-alpha` = 2026, r ## [Unreleased] +### Fixed + +- **App installs now copy subdirectories, so dependency hooks actually + ship.** `install_from()` only copied an app's top-level files, so the + `scripts/` folder — where a provider's `on_install`/`on_start` dependency + hooks live — never reached `/var/lib/furtka/apps//`, and every hooked + dependency failed at reconcile with `hook ... missing in provider`. The + whole app folder is copied now (`rmtree` + `copytree`, so a reinstall also + drops files that were removed upstream). Found during the first real + end-to-end run of the mosquitto + zigbee2mqtt pair on a test VM. +- **`furtka app install ` now runs `on_install` hooks.** Named CLI + installs copied the app folders and then ran a bare reconcile, which fires + `on_start` but never `on_install` — so a CLI install of a consumer brought + its provider up without ever provisioning it (no account created, empty + `MQTT_*` values in the consumer's `.env`). Named installs now go through + `install_runner.run_install` (writing the plan file first), the same docker + phase the API dispatches, so providers come up before consumers and + `on_install` hooks run. Path-based installs keep the copy + reconcile + dev/test path. + ## [26.18-alpha] - 2026-06-04 ### Fixed