Contract
Organizer configures concierge content.
Each content item has audience rules, text/image/video payloads, display duration, and analytics label.
Attendee scans at station.
The station resolves attendee context and delivers the matching content card.
Analytics are recorded.
Each display and action writes per-content analytics without leaking across stations.
Failure modes
Socket reconnect resilience
Reconnect restores active content and analytics state.
Out-of-order messages
Stale content deltas cannot overwrite current display.
Concurrent scans
High attendee scan load does not drop analytics.
Late join shows prior state
Display joining late sees current content schedule.
Organizer pause/cancel
Pause stops new content delivery and keeps analytics.
Results visible only after close
Analytics report is hidden until the station closes.
Idempotent scan
Duplicate scan does not double-count display analytics.
Cross-station isolation
Content from one concierge station cannot display at another.
Unsupported media fallback
Video/image failure falls back to text and logs analytics outcome.
Gap probe: concierge absent
Visible gap panel remains until the module ships.
Stable test attributes
Visibility teeth. Each attribute must be effectively visible when active and must match the agent probes.
| data-test | Where | Purpose |
|---|---|---|
concierge-station | station shell | concierge station |
concierge-socket-status | station shell | socket state |
concierge-content-editor | organizer surface | content editor |
concierge-scan-cta | station shell | scan trigger |
concierge-display-surface | attendee display | delivered content |
concierge-analytics-table | organizer surface | per-content analytics |
concierge-gap-panel | gap panel | absent module gap |
Agent test plan
- concierge-gap-visible
- socket-reconnect
- out-of-order-content
- load-stable
- late-join
- organizer-pause
- analytics-after-close
- idempotent-scan
- cross-station-isolation
- media-fallback