[x] 1.2 Remove direct mutation of Yjs-managed awareness map — Req 1.2
[x] 2. Build the Rich Cursor Extension (Initial)
[x] 2.1 (P) Cursor widget DOM: name label, avatar image, initials fallback — Req 3.4, 3.5
[x] 2.2 (P) Broadcast local cursor position to awareness — Req 3.6, 3.7
[x] 2.3 (P) Render remote cursor decorations from awareness — Req 3.6, 3.7
[x] 3. Integrate Rich Cursor Extension into Editor Configuration — Req 1.3, 2.4, 3.6
[x] 4. Unit Tests for Core Behaviors (Initial)
[x] 4.1 (P) Awareness state filtering and mutation-free disconnect — Req 1.1, 1.2, 1.4
[x] 4.2 (P) Cursor widget construction, equality, avatar fallback — Req 3.4, 3.5
[x] 5. Integration Tests for Multi-Client Collaborative Scenarios
[x] 5.1 Awareness update flow to EditingUserList — Req 1.3, 2.1, 2.4
[x] 5.2 Cursor position broadcasting and remote rendering — Req 3.6, 3.7
[x] 6. Add baseTheme with Overlay Positioning, Hover, and Opacity Rules
[x] 6.1 (P) Cursor overlay CSS rules — Req 3.1, 3.2, 3.3, 3.8, 3.9
[x] 6.2 (P) Off-screen container and indicator styles — Req 4.5, 4.7
[x] 7. Rework RichCaretWidget for Overlay Avatar with Activity State
[x] 7.1 Widget DOM: overlay flag, avatar/initials, hover name label, isActive — Req 3.1–3.5, 3.10
[x] 7.2 Activity tracking with per-client timers (3s inactivity) — Req 3.10
[x] 8. Build Off-Screen Cursor Indicators
[x] 8.1 Persistent off-screen containers on editor DOM — Req 4.7
[x] 8.2 Classify cursors by visible range, render indicators — Req 4.1–4.6
[x] 9. Unit Tests for Updated Widget and Off-Screen Indicators
[x] 9.1 (P) Widget DOM structure, sizing, isActive, borderColor — Req 3.1–3.5, 3.10
[x] 9.2 (P) Off-screen indicator DOM, Material Symbols arrow, avatar fallback — Req 4.1, 4.2, 4.4, 4.9
[x] 10. Integration Tests for Viewport Classification and Activity Tracking
[x] 10.1 Off-screen exclusion from widget decorations — Req 4.3, 4.6
[x] 10.2 Activity tracking timer lifecycle (fake timers) — Req 3.10
[x] 12. Fix Off-Screen Visibility Classification
[x] 12.1 Multi-mode classification: rangedMode / coordsMode / degenerate — Req 4.1–4.3, 4.6
[x] 12.2 Integration test for render-buffer cursor → off-screen indicator — Req 4.3, 4.6
[ ]* 11. E2E Tests for Hover, Opacity, and Off-Screen Transitions (deferred)
[ ]* 11.1 (P) Hover behavior on cursor overlay flag — Req 3.3, 3.9
[ ]* 11.2 (P) Off-screen indicator visibility on scroll — Req 4.1–4.3, 4.6
[x] 13.1 (P) Create a Jotai atom for storing the scroll-to-remote-cursor callback
[x] 13.2 (P) Extend the collaborative editor mode hook to create and register a scroll-to-remote-cursor function
[x] 14. (P) Update EditingUserList with color-matched borders and click-to-scroll
[x] 15. Connect all components end-to-end
[x]* 16. Test coverage for color-matched borders and click-to-scroll
[x]* 16.1 (P) Unit tests for EditingUserList rendering and click behavior
[x]* 16.2 (P) Integration test for the scroll function in the collaborative editor mode hook
[x] 17.1 Extend the off-screen indicator to accept and fire a click callback
[x] 17.2 Wire the scroll function to off-screen indicators via a mutable ref in the editor mode hook
[x] 18. (P) Refactor the UserPicture component to eliminate the tooltip higher-order component
[x] 19. Enable the native UserPicture tooltip in EditingUserList
[x]* 20. Test coverage for off-screen click and tooltip refactoring
[x]* 20.1 (P) Unit tests for off-screen indicator click behavior
[x]* 20.2 (P) Integration test for off-screen indicator scroll wiring
[x]* 20.3 (P) Unit tests for UserPicture tooltip refactoring
[x]* 20.4 Unit tests for EditingUserList tooltip integration