- Shipped
- November 15, 2026 at 12:32 AM UTC
- Author
- Kamo
- Commit
- 4a9f5df
Per-instance fetches that fired on every mount/navigation now share one module store each (app/lib/sharedResource: one in-flight request per key, cached for the tab, stale-while-reread), invalidated by the pushed rights change (new userInfoStore.onRightsChanged) and by the mutation that changes them: - lead markets (useHasActiveMarkets, useLeadMarkets, CrmMarketContext, LeadManager) -> leadMarketsStore; marketsApi writes + org-change frames invalidate - applied model (9 useAppliedModel callers) -> appliedModelStore; session org == '' key - provider capabilities -> providerCapabilitiesStore; providerApi provider/domain saves invalidate - my-networks (HomeScreenGate, FirstOrgCta, RelationshipManager) -> myNetworksStore; org create invalidates useEntitlements / useExec2ExecAccess: invalidate on rights change; 60s TTL -> 30 min safety TTL. PlatformRightsProvider re-reads on rights change. God mode: GodModeControl no longer polls every 60s. The store arms one timer at the server-stamped expiresAt (+250ms) and reconciles there, on visibility, `online`, socket reconnect, and after a refused toggle. isActive still checks the clock (fails closed). One "is god" answer in lib/godMode: godEligibleFrom/isGodEligible (GD only, no bypass) and **************** (GD AND open window); useGodModeActive now requires eligibility; new useGodEligible. **************** get the same active-god bypass as checkRight. **************** removed: callers use the server's **************** (pages wait for it before redirecting). UI gates that bypassed on GD alone (contact rules, wallpaper, automation canvas, lead outreach/consent, member backgrounds, member page access) now rely on checkRight / active god mode. Root layout timezone read goes over loopback (127.0.0.1:$PORT + x-forwarded-host) like fetchOrganization, not back out the public host.
