Skip to content

v0.2.0 Release Notes

Release Date: 2026-10-15

Highlights

  • A session from the relying-party BFF. @plexusone/auth adds SessionProvider and useSession, which read /bff/session: the person, their memberships keyed by organization ID with a role per application, and the deployment's app catalog.
  • Shell chrome for composed applications. @plexusone/shell adds a product switcher from the app catalog, a controlled organization switcher, a session profile menu, named slots for an application's own controls, and a light, dark and system theme.
  • Organization management pages in @plexusone/pages, and @plexusone/chat with AI SDK integration.
  • Published as @plexusone/*, publicly, on React 19.

Upgrade notes

  1. Scope and React. Import from @plexusone/* instead of @systemforge/*, and use React 19.
  2. UserMenu has no default links. It no longer adds Profile and Settings entries pointing at /settings/profile and /settings. Pass them in userActions to keep them.
  3. Applications on a SystemForge relying party can drop their own top bar:
<SessionProvider>
  <AppShell
    appName="Reports"
    app={{ id: 'reports', name: 'Reports', url: '/' }}
    organizationId={org}
    onOrganizationChange={(id) => navigate(`/orgs/${id}`)}
    showThemeToggle
  >
    {routes}
  </AppShell>
</SessionProvider>

See Composing applications.

Shell

Piece What it does
ProductSwitcher The current application first, then the catalog applications the person holds a role in for the current organization; links across hosts, or onNavigate in one build
OrganizationSwitcher Controlled, keyed by organization ID; reports the chosen ID and keeps no state
ProfileMenu Who is signed in, the current organization and the role in this application, profileItems, sign out
Slots brand, command and actions on Navbar and AppShell
Theme showThemeToggle, useTheme and applyStoredTheme; the dark class on the root element, surviving unavailable storage

Navbar, UserMenu and OrgSwitcher now render without an AuthProvider or TenantProvider instead of throwing, so an application can use SessionProvider alone.

Known limits

  • Tooltips on icon-only controls and the responsive top bar are not done yet.
  • The shell's styles are Tailwind classes; an application without Tailwind needs the @plexusone/ui preset until compiled CSS ships.

Installation

pnpm add @plexusone/shell @plexusone/auth @plexusone/tenant @plexusone/ui

See the changelog for every change and its commit.