Skip to content

feat: presence UI surfaces for 7.1#1

Merged
josephfusco merged 15 commits intomainfrom
7.1/ui
Mar 30, 2026
Merged

feat: presence UI surfaces for 7.1#1
josephfusco merged 15 commits intomainfrom
7.1/ui

Conversation

@josephfusco
Copy link
Copy Markdown
Collaborator

@josephfusco josephfusco commented Mar 30, 2026

Summary

User-facing presence surfaces built on the internal API from main. REST endpoints, dashboard widgets, admin bar indicator, post/user list integration, and WP-CLI commands.

GET/POST/DELETE /wp-presence/v1/presence and GET /wp-presence/v1/presence/rooms.
SQL-level pagination with X-WP-Total/X-WP-TotalPages headers,
Cache-Control: no-store, per-user entry limits, and client_id
ownership validation to prevent impersonation.
Two heartbeat-driven dashboard widgets with signature-based
DOM diffing, avatar stacks, idle/active status, overflow
thresholds, and ARIA live regions for accessibility.
CLI: wp presence set/list/summary/cleanup/demo with user
validation and demo user cap. Debug viewer at ?presence-db=1
with nonce verification and X-Frame-Options.
23 additional tests covering REST controller, both dashboard
widgets, pagination headers, entry limits, and XSS sanitization.
2-minute demo framed around host performance and scalability.
Covers empty room, first signs of life, real-time awareness,
entropy, and architectural rationale.
Avatar stack in the admin bar now draws from the "here" group
only, not all online users. If nobody else is on your page,
the stack is empty and only the count shows.
Overflow "+N more rows" now ticks down as entries expire instead
of showing a stale server-side count. Body overflow switches from
hidden (embedded iframe) to auto (standalone page).
First demo user always gets a post-editing screen so the
Active Posts widget is never empty during demos.
Avatar stack limited to 10 to prevent overflow at high user counts.
Both "On this page" and "Elsewhere" groups sorted A-Z by display name.
Playwright test that captures PNGs of every presence surface
under 7 conditions: empty, 5 users, 20 users, post list,
users list, idle state, and expired state.

Outputs to artifacts/screenshots/ for docs and GIF generation.
Use Playwright request API for login instead of form interaction
to avoid viewport/focus issues. Add dedicated headless config
for consistent screenshot artifacts.
Replace custom auth with core's globalSetup + storageState pattern.
All tests run headless with request-based authentication.
Remove old screenshots.config.js in favor of single config.
Fix Active Posts test to use wp eval instead of CLI --user flag
which collides with WP-CLI's global --user parameter.
@josephfusco josephfusco merged commit bc0eb95 into main Mar 30, 2026
josephfusco added a commit that referenced this pull request Mar 30, 2026
feat: presence UI surfaces for 7.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant