- Shipped
- September 28, 2026 at 6:01 AM UTC
- Author
- Kamo
- Commit
- 94a1b65
The platform now sells four plan ladders — Business, Family, Community and Personal — and an organization's universe decides which one it is offered. /network/create asks the question, once, where it belongs: only when the organization is being created directly under the platform (the session's organization is top-level), which is where a customer's first organization is made. Everywhere else the new organization is a branch of an existing customer and SecurityService gives it its parent's universe, so no picker is shown and no `universe` is sent. The parent is read from /api/org/current rather than the shell's OrgContext, which on the shared host starts as the platform and would flash the question at somebody creating a branch of their own company. The picker starts answered — Business, or whatever the KamoUniverse site's hand-off link named **************** — so it can never block a launch. A paid plan from that link that belongs to the chosen universe is carried through `/validate?next=` into the NEW organization's billing console with the plan already selected, keyed on the creator's own membership there. `universe` rides on POST /api/security/org only when it was asked; SecurityService parses that body field by field, so the key is ignored until the universe-aware SecurityService lands. The plan surfaces compared codes: `planCode === 'FREE'` (MyPlanWidget, PlanUpgradeDelta, PlanStandingHero, /myplan) and `=== 'ENTERPRISE'` (SubscriptionOrderWizard). On a Family organization there is no FREE — its floor is FAMILY_FREE — so the page found no floor to measure a trial against and offered the free plan as an upgrade. They now ask planLadder: the floor is plan_type FREE or a code that names it (every answer given before is kept), and a negotiated plan is ENTERPRISE or <UNIVERSE>_ENTERPRISE. The billing console was already catalog-driven and needed nothing. /myplan shows the organization's universe as a read-only chip on the org line. An absent `universe` — every organization created before universes — reads as Business (universeOrDefault). Keys: kamo-translation-dictionary 1fcb6274 (pushed first).
