Version 0.39.0
New features
Generate a model straight from your groups
When generating a model from your people directory, you can now build its units from your groups instead of department or manager. Pick a root group (or leave it to cover every top-level group) and each group with people in it becomes a unit, nested the same way your groups are — empty groups are skipped, and people who aren't in any group land in a catch-all Unassigned unit.
Live models: keep any model in sync with your people directory
Any protected model can now be live. Press the new Live button in the model's header to open its Live sync dialog and turn Live on, or tick Keep this model live when you generate a model from your people (both are for organization admins; other members see why the option is off), and every change in your people directory that affects that model arrives as a reviewable proposal: joiners, leavers, moves, renames and attribute changes. Review and apply it in Merge, or let auto-accept handle the kinds you don't need to see.
Each live model has its own people scope, unit source, groups scope, auto-accept rules and recompute timing, so you can keep a company-wide chart live alongside one model per region or team. The people scope is set in the Live dialog and does one thing: it decides which people produce proposals for that model. It never hides anyone from assignment or from the model's People view, and leaving it empty means everyone. When you generate a model from your people with Keep this model live ticked, the people you generated from become its scope. Unit syncing is optional: sync units from the department field, from the groups under a root group, or don't sync units at all — positions are still filled, added, vacated and updated, but units are never created, moved or renamed. Live models carry a Live badge, the models list has a Live filter, and Compare and Merge suggest your only live model as the counterpart when you have exactly one.
Breaking changes: the organization-level baseline is gone, with no aliases. The Baseline badge, the Baseline switch when editing a model and the Baseline page are replaced by the per-model Live button and dialog. The model-level person filter (the Person filters dialog, the "Excluded person assigned" problem and the personFilterConfig fields and mutations on Model) is also gone: a people filter now exists only as a live model's people scope, and models copied or propagated along a timeline never carry one. In the GraphQL API, baselineModel, setBaselineModel, Organization.baselineModel, baselineSyncSettings, updateBaselineSyncSettings, baselineSyncProposal, applyBaselineSyncProposal, dismissBaselineSyncOperations, recomputeBaselineSyncProposal, baselineScopePreview and compareToBaseline are removed in favour of Model.liveSync, liveModels, liveSyncProposal, liveSyncScopePreview and the enableLiveSync, updateLiveSyncSettings, disableLiveSync, applyLiveSyncProposal, dismissLiveSyncOperations and recomputeLiveSyncProposal mutations. In the REST API, the /models/baseline routes are replaced by /models/{id}/live-sync, /models/{id}/live-sync/proposal, /models/{id}/live-sync/proposal/apply and /models/{id}/live-sync/recompute. For AI agents, the CompareToBaseline, GetBaselineSyncProposal and ApplyBaselineSyncProposal MCP tools are replaced by ListLiveModels, GetLiveSyncSettings, UpdateLiveSyncSettings, GetLiveSyncProposal and ApplyLiveSyncProposal, which take a model id.
Improvements
People page now pages instantly, even with thousands of people
The People page loads 100 people at a time instead of fetching your whole directory up front, so it opens fast no matter how large your organization is. Searching now filters on the server as you type, and keeps your place — including your search term and which page you're on — if you refresh the page, bookmark it, or come back to People from another screen.
Known limitation: the Manager field on the add/edit person forms only offers people from the currently-loaded page, so in organizations with more than 100 people it may not show every manager to choose from (existing manager assignments are unaffected).
Bug fixes
The Groups tree now shows every group, even in large organizations
Organizations with more than 200 groups used to have their Groups page tree silently cut off after the 200th group, hiding groups and their children further down the list. The tree now loads every group, however many there are.