Skip to content

improvement(org): move the People page onto the new design system - #9720

Merged
waleedlatif1 merged 3 commits into
stagingfrom
improvement/org-people-redesign
Nov 5, 2026
Merged

waleedlatif1 merged 3 commits into
stagingfrom
improvement/org-people-redesign

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Rebuild People on the embedded design system (same mount as Home, Links, Integrations): org chart, directory, profile, directory sync, connect, import
  • Org chart matches the Paper prototype: person cards, focused state, reporting bus, breadcrumb, zoom and fit controls, four reports per page on desktop, one branch with a compact manager on mobile
  • Find a person is a real search field with two-line results (title and department) and keyboard hints
  • Directory sync is now a page at the existing ?panel=sync URL, with a summary for each state: connected, first sync, syncing, publishing, waiting to retry, failed, paused
  • First use for an admin offers Okta, Entra and SCIM plus Import profiles; a member gets a neutral state pointing at the directory
  • Profile is two columns with Copy profile link; invalid or inaccessible links get a neutral recovery state
  • Page gate moves to canBrowsePeople, so a member withheld the directory gets a 404 from a saved link, matching the sidebar
  • Sync actions share one org-wide in-flight guard, since the page and the connect dialog each hold actions now
  • Initial sync status reads no longer invalidate every People query
  • Move the parsers and sheet reader to lib/people, matching Build the Platform Core, Chat, and member integrations UI #9687
  • Delete the legacy People views and the ResourceLoadError they orphaned; LinksSurface becomes a shared RedesignPageSurface

Design-system additions, each with a People consumer: SearchCombobox, Avatar row/card/hero, DataTable primary and rowChevron, SearchableSelect variant='text', users and minus glyphs. EmptyState now lays out its own action row instead of restyling any div it is given.

Where the prototype and the #9687 contract disagree, this follows the contract:

  • No row dividers in the directory or profile lists (lines are reserved for surface boundaries)
  • Single-initial avatars
  • Dialogs use the shared Modal chrome
  • Disconnect is the solid destructive button
  • Directory load-more is automatic through the table owner, not a button

Deliberate departures from the prototype:

  • Header keeps Import beside Directory sync once a chart exists, so admins don't lose it
  • Mobile keeps the breadcrumb, so top-level teams stay reachable
  • Profile rows center the avatar as Paper draws them instead of using ActivityRow, whose leading slot can't hold it (the contract asks for first-line alignment)
  • Underline tabs are local to People, as Paper draws them (the contract points horizontal destinations at ControlRow)

Heads up for #9687: its branch has its own people/ tree at many of the same paths, so that rebase needs to pick this implementation.

Type of Change

  • Improvement

Testing

  • test-people-e2e.ts against a running app and real Postgres in hosted mode: 20/20, browser journey updated for the new UI and extended to the header entry points
  • test-org-redesign-e2e.ts People phase updated; runs in CI, not run locally
  • bun run --cwd apps/sim test lib/people and the organization layout test: 56 passed
  • type-check, lint, check:platform-css, check:source-conventions, check:comment-hygiene, check:file-names, check:utils, check:client-boundary, check:explicit-any, check:boundaries, check:test-patterns, block registry
  • Full check:audits and root bun run test left to CI
  • Rendered every state against the Paper artboards: light and dark on the chart, 1440, 1024 and 390 wide. Sync states used a mocked status response
  • Not exercised against a real Okta or Entra tenant

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Nov 5, 2026 10:59pm UTC

Request Review

@greptile-apps

greptile-apps Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues remain from this review.

Summary

Moves People onto the shared design system, including the org chart, directory, profiles, imports, and directory sync.

  • The org chart centers on a person and lets people explore reporting lines.
  • The directory leads to searchable people profiles with manager and report details.
  • Directory sync has its own page for connection status and actions.
  • Administrators can import profiles from a shared People import flow.
  • People routes share a page frame and gate access to the directory.

Reviews (3) · Last reviewed commit: "fix(people): keep the publish refresh on..." · Reviewed by Greptile

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 69 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/platform/lib/data/people.ts Resolved
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 70 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/hooks/queries/people-sync.ts Resolved
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 70 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Turn on auto-fix | Re-trigger cubic

@waleedlatif1
waleedlatif1 merged commit 7625929 into staging Nov 5, 2026
79 of 80 checks passed
@waleedlatif1
waleedlatif1 deleted the improvement/org-people-redesign branch November 5, 2026 23:16
waleedlatif1 added a commit that referenced this pull request Nov 6, 2026
* Revert "improvement(org): move the People page onto the new design system (#9720)"

This reverts commit 7625929.

* Revert "fix(org): drop the removed shortcuts slot from the landing test (#9715)"

This reverts commit f17f1b6.

* Revert "improvement(org): move the organization view onto the new design system (#9708)"

The redesigned org view ships all at once with #9687. The shared modules later
staging work builds on stay: member-integrations and the accounts key factory.
The legacy integration detail opens the saved-credential modal for Jama and Flow,
which #9723 added only to the new view.

* fix(org): keep staging's shared modules and revert only the redesigned views

Hooks, contracts, key factories and lib helpers stay at staging, and the legacy
view adapts to them. Jama and Flow reconnect through the saved-credential modal
and disconnect through Search. Exports only the new views used are unexported or
deleted, and the e2e script returns to the legacy view's selectors.

This branch was previously deployed

1 inactive deployment
Preview — 4f370eff Deployed Nov 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant