- Shipped
- August 8, 2026 at 8:56 PM UTC
- Author
- Kamo
- Commit
- 2e96677
An app the operator retires has to disappear everywhere, not just from the apps page — otherwise it keeps showing up in the security-model editor and in entitlement answers. Both services now ask AppCatalogService instead of the enum. The enum's own @Deprecated constants still resolve deprecated, so nothing moves until an operator retires something. Also adds isAppInPlanMatrix / isEntitlementFailOpen for the operator UI. Marking an app Available does not decide who gets it: an app the plan matrix never mentions falls through to kamo.entitlement.fail-open, which defaults to GRANT. So making an app available without a plan row silently gives it to every organization — the tab needs to be able to say that.