Date: 2025-12-11 Purpose: Test 4 UI improvements after basic P2P messaging verification
- Services running:
docker ps | grep -E "(internal-service|server)" - UI accessible at http://localhost:5173/
- Workspace password:
SUPER_SECRET_ADMIN_PASSWORD_CHANGE_ME - Account password:
test12345
- Open http://localhost:5173/ in a new browser tab
- Click "Join Workspace"
- Fill workspace form:
- Location:
127.0.0.1:12349 - Password: leave empty
- Click "NEXT"
- Location:
- Click "NEXT" on security settings
- Fill user profile:
- Full Name:
P2P User A - Username:
p2ptest_a_{timestamp}(use current timestamp) - Password:
test12345 - Confirm:
test12345 - Click "JOIN"
- Full Name:
- If "Initialize Workspace" modal appears:
- Enter:
SUPER_SECRET_ADMIN_PASSWORD_CHANGE_ME - Click button
- Enter:
- Verify workspace loaded
- Open http://localhost:5173/ in a NEW TAB (same browser)
- Click "Join Workspace"
- Fill workspace form (same location:
127.0.0.1:12349) - Click "NEXT" on security settings
- Fill user profile:
- Full Name:
P2P User B - Username:
p2ptest_b_{same_timestamp} - Password:
test12345 - Click "JOIN"
- Full Name:
- VERIFY: NO "Initialize Workspace" modal (second user)
- Verify workspace loaded
CHECKPOINT 1: Both accounts created, both tabs open
- Look for "Discover Peers" button in header area
- Click to open Peer Discovery modal
- Click "Refresh" if peer list is empty
- Wait for User B to appear in list
- Click "Connect" button next to User B
- Button should change to "Awaiting Response..."
- Look for notification badge or bell icon
- Open Pending Requests modal
- Verify User A's request appears
- Click "Accept" for User A
- Verify badge is cleared after accepting
- Both users should see "DIRECT MESSAGES" section in sidebar
- The peer should appear in the direct messages list
CHECKPOINT 2: P2P Registration complete
- Click on User B in DIRECT MESSAGES sidebar
- Verify chat header shows User B and "Online" status
- Type: "Hello from User A!"
- Click Send or press Enter
- Verify message appears on RIGHT side (sender)
- Click on User A in DIRECT MESSAGES sidebar
- Verify "Hello from User A!" appears on LEFT side (receiver)
- Type: "Hello back from User B!"
- Click Send
- Verify message appears on RIGHT side (sender)
- Verify "Hello back from User B!" appears on LEFT side (received)
- Verify total 2 messages visible with correct positioning
CHECKPOINT 3: Bidirectional messaging verified
Test Steps:
- From Tab 1 (User A): In the P2P chat, click the message type selector
- Select "Live Doc" type
- Enter a document title: "Test Doc"
- Click Create
- Document should open in a new tab within the chat panel
From Tab 2 (User B):
- Click on User A in DIRECT MESSAGES
- Find the Live Document message bubble
- Click "Click to open" on the bubble
- Document should open in User B's view
Cursor Test:
- In Tab 1, start typing in the document
- Switch to Tab 2
- VERIFY: You should see a thin blinking vertical line with a tooltip showing User A's name
- The tooltip should have a colored background
Expected Behavior:
- Thin vertical line at cursor position (2px wide)
- Line should blink (1s interval)
- Tooltip above cursor with username
- Click tooltip to expand for flash comment input
Screenshot: Take screenshot of cursor indicator in Tab 2
Test Steps:
- In Tab 1 (User A), with the Live Document tab open (NOT messages tab)
- From Tab 2 (User B), send a new message in the chat
From Tab 1 (User A):
- Look at the "Messages" tab in the tab bar
- VERIFY: Green glowing dot should appear next to "Messages" text
- The dot should pulse/animate
Expected Behavior:
- Green dot (8px diameter)
- Glowing effect with box-shadow
- Pulse animation
- Dot disappears when Messages tab is clicked
Screenshot: Take screenshot showing the notification dot on Messages tab
Test Steps:
- In Tab 1 (User A), ensure both "Messages" and Live Doc tabs are visible
- Click on "Messages" tab (not Live Doc)
- From Tab 2 (User B), type some text in the Live Document
From Tab 1 (User A):
- Look at the Live Doc tab
- VERIFY: Green activity indicator should appear on the Live Doc tab
- The indicator shows peer has made changes
Expected Behavior:
- Same green dot style as Messages notification
- Appears when document receives update while not active
- Clears when tab is selected
Screenshot: Take screenshot of activity indicator on Live Doc tab
Test Steps:
- Open the browser's notification center by clicking the bell icon
- Note the current unread count
From Tab 2 (User B):
- Send multiple new messages to User A
- Check bell icon badge count increases in Tab 1
From Tab 1 (User A):
- Click on User B in DIRECT MESSAGES to view the conversation
- VERIFY: Notification bell count should auto-decrement
- Messages from User B should be automatically marked as read
Expected Behavior:
- Badge shows unread count (destructive/red badge)
- Count decreases when viewing conversation
- Uses
notificationService.markMessageNotificationsAsReadBySender(peerCid)
Screenshot: Take screenshot of bell icon before and after viewing messages
- Open browser DevTools (F12)
- Check Console tab for errors
- Note any warnings related to:
- "Key not found"
- "request timed out"
- "MessageSendFailure"
tilt logs internal-service | tail -100
tilt logs server | tail -100# P2P UI Improvements Test Report
**Date:** {current_date}
**Timestamp:** {test_timestamp}
## Accounts Created
- User A: {USER_A_USERNAME}
- User B: {USER_B_USERNAME}
## P2P Messaging Test Results
| Test | Status | Notes |
|------|--------|-------|
| Account Creation | PASS/FAIL | |
| P2P Registration | PASS/FAIL | |
| Message A->B | PASS/FAIL | |
| Message B->A | PASS/FAIL | |
| Message Positioning | PASS/FAIL | Sender=RIGHT, Receiver=LEFT |
## UI Improvements Test Results
| Feature | Status | Notes |
|---------|--------|-------|
| Cursor Indicator in Live Doc | PASS/FAIL | Blinking line + tooltip visible |
| Messages Tab Notification Dot | PASS/FAIL | Green glowing dot when new message |
| Tab Activity Indicator | PASS/FAIL | Green dot on Live Doc when peer activity |
| Notification Bell Count Sync | PASS/FAIL | Auto-decrement when messages viewed |
## UX Issues Discovered
| Severity | Issue |
|----------|-------|
| HIGH/MEDIUM/LOW | Description |
## Console Warnings/Errors
- {warning_message}
## Screenshots
1. cursor-indicator.png
2. messages-tab-notification.png
3. tab-activity-indicator.png
4. notification-bell-count.png
## Overall Result: PASS/FAIL| Feature | File | Key Lines |
|---|---|---|
| Cursor Indicator | src/components/p2p/CollaboratorCursor.tsx |
Lines 48-195 |
| Messages Tab Dot | src/components/p2p/ChatTabBar.tsx |
Lines 44-46 |
| Tab Activity | src/components/p2p/P2PChat.tsx |
Lines 274-290 |
| Bell Count Sync | src/components/p2p/P2PChat.tsx |
Lines 313-318 |
| CSS Styles | src/index.css |
Lines 255-487 |
.collaborator-cursor__line {
width: 2px;
animation: cursor-blink 1s step-end infinite;
}
.collaborator-cursor__tooltip {
white-space: nowrap;
padding: 2px 8px;
border-radius: 4px;
font-size: 11px;
}.notification-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: #22c55e;
box-shadow: 0 0 6px #22c55e;
}
.notification-dot.animate-pulse-green {
animation: pulse-glow-green 2s ease-in-out infinite;
}- Check both sessions exist in GetSessions response
- Look for PeerConnectFailure or MessageSendFailure errors
- Verify peer_connections is populated in backend logs
- Verify both users have the document open
- Check for
yjs_awarenessmessages in console - Verify
p2p:raw-messageevent is being emitted
- Verify you're NOT on the Messages tab when message arrives
- Check
messagesHasUnreadstate in React DevTools - Verify eventEmitter 'p2p:message-received' is fired