# Scratchpad — Teams V2 Improvements - Plan slug: `teams-v2-improvements` - Created: `2026-02-26` - Parent plan: `docs/plans/2026-02-26-teams-v2-org-hierarchy-operational-teams/` ## Decisions - (2026-02-26) Reversing the original non-goal: "Team logos or custom team icons" — now adding team avatar infrastructure. - (2026-02-26) Tab name changed from "Org Chart" to "Structure" (user confirmed). - (2026-02-26) Node click in org chart opens UserDetails drawer (user confirmed) — reuses existing drawer pattern from UserList. - (2026-02-26) Using ReactFlow for org chart (already installed v11.11.4, extensively used in workflow visualization). - (2026-02-26) Merging two ViewSwitchers into one row in CardHeader — eliminates duplicate list/org toggle. - (2026-02-26) Team avatars use existing `document_associations` + `EntityImageService` pattern — no new storage infrastructure needed. - (2026-02-26) `TeamAvatar` component follows exact pattern of `UserAvatar` (thin wrapper around `EntityAvatar`). - (2026-02-26) Extract team logic from `MultiUserPicker` into a new `MultiUserAndTeamPicker` component (user confirmed). Follows the same pattern as `UserPicker` → `UserAndTeamPicker`. `MultiUserPicker` stays team-free. Call sites swap via `teams-v2` feature flag. ## Discoveries / Constraints - (2026-02-26) `EntityType` is defined in 4 separate files that all need updating: - `packages/media/src/lib/avatarUtils.ts` (canonical backend) - `packages/users/src/lib/avatarUtils.ts` (user-specific copy) - `packages/formatting/src/avatarUtils.ts` (formatting copy) - `packages/ui/src/components/EntityImageUpload.tsx` (UI component) - (2026-02-26) `document_associations` CHECK constraint currently allows: `'asset','client','contact','contract','project_task','tenant','ticket','user'` — need to add `'team'`. - (2026-02-26) Latest constraint migration: `server/migrations/20251020000001_add_document_folders_preview_and_contract_association.cjs` uses `NOT VALID` pattern. - (2026-02-26) `document_associations` is distributed in Citus — migration needs `exports.config = { transaction: false }`. - (2026-02-26) `reactflow` v11.11.4 is already a dependency in both root and server `package.json`. - (2026-02-26) ReactFlow needs dynamic import with `{ ssr: false }` in Next.js — proven pattern in `packages/workflows/src/components/visualization/DynamicReactFlow.tsx`. - (2026-02-26) Current org chart is simple recursive `