`furtka app install <name>` copied app folders (install_plan) 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, empty MQTT_* in the consumer .env). Route named installs 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 installs keep the copy+reconcile dev/test path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| test_api.py | ||
| test_app.py | ||
| test_auth.py | ||
| test_catalog.py | ||
| test_cli.py | ||
| test_deps.py | ||
| test_dockerops.py | ||
| test_drives.py | ||
| test_https.py | ||
| test_install_runner.py | ||
| test_installer.py | ||
| test_manifest.py | ||
| test_passwd.py | ||
| test_reconciler.py | ||
| test_scanner.py | ||
| test_sources.py | ||
| test_updater.py | ||
| test_webinstaller_assets.py | ||