agent-ecosystem/src/renderer/components/team
Mike 7c4247bc73 perf(team): virtualizer skeleton + measured scrollMargin (gated)
Fourth step of the virtualization plan. Adds `useVirtualizer` wiring
with a DOM-measured `scrollMargin`, gated behind
`viewport.virtualizationEnabled`. Dormant in this release — no caller
flips the flag yet — so behavior is unchanged.

- Imports `useVirtualizer` from `@tanstack/react-virtual`. Fixed
  per-kind estimates (`ROW_SIZE_ESTIMATES`) drive `estimateSize`. Keys
  come from `row.key`, so row identity matches the renderRows model.
- `shouldVirtualize` requires all of: contract says enabled, a scroll
  element ref is present, and there is at least one row. Otherwise the
  render falls back to the direct `renderRows.map(...)` path from PR
  #72.
- Measures `scrollMargin` via `ResizeObserver` on both the scroll
  element and the timeline root, plus `scroll` and `resize` listeners,
  all rAF-batched. Avoids hand-summed heights that drift when
  composer/status/padding change.
- Virtualized path renders an absolute-positioned list inside a sized
  container (`height = getTotalSize()`). `translateY` subtracts
  `scrollMargin` so rows align to the timeline's own origin rather
  than the scroll container's top.

This PR intentionally does *not* enable `measureElement` (PR #5) or
flip `virtualizationEnabled` for any layout (PR #6) — both rely on
this wiring landing first.
2026-04-20 00:48:23 +05:00
..
activity perf(team): virtualizer skeleton + measured scrollMargin (gated) 2026-04-20 00:48:23 +05:00
attachments feat: UI improvements, bug fixes, and protocol noise filtering 2026-03-24 17:47:15 +02:00
dialogs feat(team): enhance team messaging functionality and UI 2026-04-19 20:57:13 +03:00
editor feat: migrate to React 19 2026-03-24 17:11:55 +02:00
kanban fix(ci): restore checks and lead model selection 2026-04-18 22:28:53 +03:00
members feat(team): enhance team messaging functionality and UI 2026-04-19 20:57:13 +03:00
messages refactor(team): viewport contract + observer root for ActivityTimeline 2026-04-20 00:17:04 +05:00
review fix(ci): stabilize provisioning test and clear lint errors 2026-03-30 16:45:14 +03:00
schedule chore(workspace): checkpoint remaining claude team changes 2026-04-12 22:15:57 +03:00
sidebar feat(team): enhance team messaging functionality and UI 2026-04-19 20:57:13 +03:00
taskLogs feat(team): add live task log stream count badge 2026-04-18 21:04:15 +03:00
tasks feat: introduce 'needsFix' review state and enhance task management features 2026-03-09 13:50:45 +02:00
ClaudeLogsDialog.tsx refactor: clean up pricing.json and enhance CLI logs styling 2026-03-13 23:29:24 +02:00
ClaudeLogsFilterPopover.tsx fix: resolve all CI lint errors and flaky test 2026-03-05 21:09:45 +02:00
ClaudeLogsPanel.tsx feat(team): refine launch and cli status flows 2026-04-10 16:45:00 +03:00
ClaudeLogsSection.tsx fix(team-runtime): harden refresh flows and reduce ui churn 2026-04-09 16:34:55 +03:00
CliLogsRichView.tsx fix(team): harden provisioning and team UI state 2026-04-06 21:28:22 +03:00
CollapsibleTeamSection.tsx Stabilize team provisioning and runtime diagnostics 2026-04-04 20:04:16 +03:00
MemberBadge.tsx feat: switch team member avatars to local assets 2026-04-19 17:33:44 +03:00
ProcessesSection.tsx chore(workspace): checkpoint remaining claude team changes 2026-04-12 22:15:57 +03:00
ProvisioningProgressBlock.tsx improvement: alot small improvements and fixes 2026-04-13 16:20:57 +03:00
provisioningSteps.ts refactor(team): split team detail snapshot from messages activity 2026-04-15 21:54:38 +03:00
RoleSelect.tsx feat: enhance message handling and UI components for task management 2026-03-16 16:48:28 +02:00
StepProgressBar.tsx refactor: update UI and functionality for team provisioning and progress indicators 2026-03-21 17:43:29 +02:00
TaskTooltip.tsx refactor(team): split team detail snapshot from messages activity 2026-04-15 21:54:38 +03:00
TeamDetailView.tsx refactor(team): wire scroll owners for MessagesPanel layouts 2026-04-19 23:41:33 +05:00
TeamEmptyState.tsx chore(workspace): checkpoint remaining claude team changes 2026-04-12 22:15:57 +03:00
TeamListFilterPopover.tsx fix: keep team project selection as sort priority 2026-04-14 18:18:52 +03:00
TeamListView.tsx fix(ci): restore workspace validation 2026-04-16 22:52:56 +03:00
teamProjectSelection.ts fix: sync team project filters with app selection 2026-04-14 18:10:09 +03:00
TeamProvisioningBanner.tsx improvement: alot small improvements and fixes 2026-04-13 16:20:57 +03:00
TeamProvisioningPanel.tsx improvement: alot small improvements and fixes 2026-04-13 16:20:57 +03:00
teamSessionFetchGuards.ts fix(team-runtime): harden refresh flows and reduce ui churn 2026-04-09 16:34:55 +03:00
TeamSessionsSection.tsx refactor(session): improve session label formatting and enhance session item display 2026-03-29 01:16:04 +02:00
ToolApprovalDiffPreview.tsx refactor: update README and enhance team UI components 2026-03-23 12:58:38 +02:00
ToolApprovalSheet.tsx refactor(team): split team detail snapshot from messages activity 2026-04-15 21:54:38 +03:00
UnreadCommentsBadge.tsx refactor: streamline ExtensionStoreView layout and enhance UnreadCommentsBadge styling 2026-03-11 22:17:39 +02:00
useClaudeLogsController.ts feat(team): refine launch and cli status flows 2026-04-10 16:45:00 +03:00
useTeamProvisioningPresentation.ts refactor(team): split team detail snapshot from messages activity 2026-04-15 21:54:38 +03:00