catalog: lifecycle field replaces the retired/ directory move
Moving a template out of templates/ un-offers it but also makes the controller's orphan detector see it as GONE for anyone already running the app - flagging their working install Elavult with a Torles button. Withdrawing an app must never take a working app away from a customer. Optional lifecycle: available|hidden|abandoned in .felhom.yml instead. plant-it returns to templates/ as the first abandoned app; retired/ removed. Resolvability gate skips (and reports) non-available apps.
This commit is contained in:
@@ -1,5 +1,34 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-07-21 (later) — app lifecycle replaces the `retired/` directory move
|
||||
|
||||
**The `retired/` mechanism shipped earlier today was wrong and is withdrawn.** Moving a template out
|
||||
of `templates/` does un-offer it — but it also makes the controller's orphan detector see the
|
||||
template as GONE for anyone already running the app, flagging their working install `Elavult` and
|
||||
offering a Törlés button. Withdrawing an app must never take a working app away from a customer.
|
||||
|
||||
Replaced by an optional top-level `lifecycle:` field in `.felhom.yml` (controller v0.158.0):
|
||||
|
||||
- `available` — default. Absent or empty means this, so all existing templates are unchanged.
|
||||
- `hidden` — not offered for new installs; nothing shown to anyone already running it.
|
||||
- `abandoned` — not offered for new installs, and every box already running it shows a permanent
|
||||
„Nem karbantartott" badge plus a notice that updates and security fixes will no longer arrive.
|
||||
|
||||
Deployed instances keep full function in every state; the controller refuses a deploy of a
|
||||
non-available template server-side. An unknown value degrades to `available` with one WARN.
|
||||
|
||||
- **`plant-it` returns to `templates/`** with `lifecycle: abandoned` — the first user of the
|
||||
mechanism, and the case that motivated it. Its compose is deliberately unchanged: it pins
|
||||
`msdeluise/plant-it:0.10.0`, a repository that does not exist (the real one is `-server`), and the
|
||||
app is not installable, so rewriting it would imply it is. `retired/` is removed.
|
||||
- **The resolvability gate is now lifecycle-aware.** Non-available apps are skipped by default and
|
||||
REPORTED, not silently dropped; `--all` includes them. An abandoned app's dead image is the
|
||||
expected end state, not a finding — counting it would leave the gate permanently red for something
|
||||
nobody intends to fix, and a gate that is always red is a gate nobody reads. 6 new fixture tests
|
||||
(19 total), including one asserting an all-skipped run is a pass rather than an error.
|
||||
|
||||
Catalog is back to **53 apps** (52 offered + plant-it abandoned).
|
||||
|
||||
## 2026-07-21 — catalog honesty: wanderer re-pinned, plant-it retired, and a standing rot gate (R-41 slice 1)
|
||||
|
||||
Campaign 7 left two apps sitting behind a working "Telepítés" button with images that did not
|
||||
|
||||
Reference in New Issue
Block a user