Rentiva v4.60.0 — Matured Payout Fix + Dead SaaS Scaffolding Removal
· 2 min read
Matured vendor payouts were silently skipped on single-site installs: a dead SaaS "control plane" gate in the matured-payout worker required a multi-tenant registry row that a normal install never provisions, so no scheduled payout ever finalized automatically. This release removes that gate — the worker now runs unconditionally — and clears out the unused multi-tenant orchestration scaffolding that caused it.
What's New
Critical Fix
- Matured vendor payouts now process on single-site installs. The matured-payout worker (
MaturedPayoutJob::run()) was gated behind a SaaS control-planeis_operational()check that required a tenant-registry row which a normal (non-SaaS-hosted) install never creates — so every scheduled run exited early without finalizing a single payout. The gate has been removed; the worker now runs unconditionally. A regression test reproduces the production state (no tenant row present) and asserts the matured payout is finalized.
Change
- Removed unused multi-tenant SaaS orchestration scaffolding. Six dead classes — the control-plane guard, usage metering, cycle manager, tenant provisioner, quota exception, and their migration — were deleted, the usage-metering call sites were stripped from the financial layer, and a one-time
v3.9.0upgrade migration drops the two now-empty database tables. The tenant-context layer used for financial data scoping is intentionally retained.
Tests
The full suite stays green at 1,263 tests / 3,839 assertions, 0 failures. The four obsolete orchestration test files were removed and a MaturedPayoutJob regression test was added. No regression.
