- Shipped
- October 5, 2026 at 9:29 PM UTC
- Author
- Kamo
- Commit
- 429ec7b
**************** mounts OrgChartPanel after Teams: who reports to whom across the organization, read-only, from GET /api/security/org-chart (new BFF relay, forwardToApi + relayUpstream). orgChartApi parses the chart with zod and keeps every id a string; a number id is refused, never rounded. orgChartTree (pure) places each person under their manager when shown, else an AI under its supervisor when shown, else at the root; owners first, then by name; a reporting loop cut at its smallest id ("Reporting loop"); a hidden manager flagged ("Manager inactive"); the department filter keeps the department's subtree and the search keeps name or job-title matches, both with the ancestors that place them. The panel draws a card per person (initials, name linked to the profile through next/link, job title, department and up to three team chips then +n, badges AI, Owner, Inactive, Head of, Lead of and Supervised by when the supervisor is not the card above, the direct-report count), connector rails in --accent-people, three levels open, EmptyState, ErrorState with retry, and a live refresh like its siblings. ErrorState gains an optional retryLabel. Also exposed per master R1-37: { key: 'orgChart' } after teams in the settings menu, an orgChart entry after Teams on the administrator bar, and a landing card after Teams. essentialSetupExposure, settingsLandingCards and teamsTab follow the new tab.
