feat(embed): Watch Me, embed-demo polish, and static RunBook demos - #25
Conversation
- Extend runbook-embed.js (Watch Me / full setup, demo steps, UI). - Embed demo page and EmbeddedRunbookAssistant updates; add FakeCursor and embedDemoWatchMe. - Add runbook-demo static sites (demo-1–3); demo-2 tour/Watch steps aligned with TOUR_STEPS and launch-gate guard. - Ignore demo-3 .server.pid; drop nested .git dirs so demos live in the monorepo. Made-with: Cursor
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 51 minutes and 31 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR implements a complete client-side "Watch Me" guided tutorial system with animated cursor overlays, element targeting via polling, and scripted UI interactions. It introduces three new demo surfaces (SaaS, e-commerce, blog article) that showcase the Runbook widget with multi-step onboarding flows, persistent state management, and customizable demo steps via Changes
Sequence DiagramsequenceDiagram
participant User
participant Client as Client Page
participant Embed as Embed Script
participant Demo as Demo App
participant Assistant as Assistant UI
User->>Client: Click "Watch me" button
Client->>Embed: Dispatch runbook-watch-me event
activate Embed
Embed->>Demo: Poll for target element selector
Demo-->>Embed: Element found
Embed->>Client: Scroll to element
Embed->>Client: Show highlight ring & fake cursor
Embed->>Client: Animate cursor to target
Embed->>Client: Simulate click on target
Embed->>Demo: Dispatch runbook-ui-action event
activate Demo
Demo->>Demo: Update internal state
Demo->>Demo: Modify UI (show field, update value)
Demo-->>Embed: Emit success status event
deactivate Demo
Embed->>Client: Show success toast
Embed->>Client: Poll for state milestone reached
Client-->>Embed: Milestone detected (e.g., API key created)
Embed->>Client: Show progress update / next step
Embed->>Assistant: Emit runbook-assistant-status event
Assistant->>Assistant: Update suggestions
Embed->>Client: Hide overlay on completion
deactivate Embed
User->>Client: View updated state & next action
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- runbook-embed: use catch blocks without unused bindings - eslint: allow require() in demo-3 Node server/stop scripts - demo-1: build API key list row with textContent (no innerHTML) - embed-demo: useCallback for Watch Me handlers (exhaustive-deps) Made-with: Cursor
Made-with: Cursor
Summary by CodeRabbit
Release Notes
New Features
Documentation