agent-ecosystem/test/renderer
Mike d4f518e8c5 refactor(team): viewport contract + observer root for ActivityTimeline
Second step of the virtualization plan. No virtualization yet. This PR
makes IntersectionObserver-based visibility tracking correct inside
scroll containers (sidebar, bottom-sheet), which is a prerequisite for
virtualizing the timeline.

- Introduces `TimelineViewport` — a grouped contract passed as a single
  `viewport` prop on `ActivityTimeline`. Holds `scrollElementRef`,
  `observerRoot`, `scrollMargin`, and `virtualizationEnabled`.
- `MessageRowWithObserver` and `LeadThoughtsGroupRow` now create their
  `IntersectionObserver` with `root = observerRoot?.current ?? null`
  instead of defaulting to the document viewport. Unread marking now
  fires when rows enter their real scroll parent.
- `MessagesPanel` resolves the active scroll owner from `position`
  (inline from parent ref, sidebar from `sidebarScrollRef`, bottom-sheet
  from `bottomSheetScrollRef`) and passes it into ActivityTimeline.
- Tests: stubs `IntersectionObserver` to capture `options.root` and
  asserts null when no viewport is passed, and the provided element when
  `viewport.observerRoot` is set.

`scrollMargin` and `virtualizationEnabled` are included in the contract
but not consumed yet — they land in follow-up PRs (#4/#5).
2026-04-20 00:17:04 +05:00
..
api feat(task-logs): add board task activity and task log stream 2026-04-12 22:13:43 +03:00
components refactor(team): viewport contract + observer root for ActivityTimeline 2026-04-20 00:17:04 +05:00
constants chore: checkpoint workspace before relaunch flow 2026-04-19 16:08:38 +03:00
features/agent-graph fix(agent-graph): stabilize drag and pan interactions 2026-04-18 18:32:04 +03:00
hooks fix(extensions): ignore stale MCP search responses 2026-04-16 22:26:03 +03:00
store fix(team): harden teammate restart lifecycle 2026-04-19 20:17:41 +03:00
types feat: enhance editor file handling and task management features 2026-03-02 20:08:03 +02:00
utils chore(merge): sync local dev into spike/team-snapshot-split-plan 2026-04-18 20:26:36 +03:00