update demo script for new dashboard layout and LAN badges

Reorder scenes to show services first (matching panel order),
scroll to blocking panel for domain check scene. LAN badge
now visible after adding a service.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Razvan Dimescu
2026-03-22 07:04:06 +02:00
parent 5866ff1ba1
commit cd90b50d68
2 changed files with 28 additions and 20 deletions

2
Cargo.lock generated
View File

@@ -932,7 +932,7 @@ dependencies = [
[[package]] [[package]]
name = "numa" name = "numa"
version = "0.1.0" version = "0.3.0"
dependencies = [ dependencies = [
"axum", "axum",
"env_logger", "env_logger",

View File

@@ -8,8 +8,10 @@
# 1. Opens the dashboard in Chrome --app mode (clean, no address bar) # 1. Opens the dashboard in Chrome --app mode (clean, no address bar)
# 2. Generates DNS traffic (forward, cache hit, blocked) # 2. Generates DNS traffic (forward, cache hit, blocked)
# 3. Types "peekm" / "6419" into the Local Services form on camera # 3. Types "peekm" / "6419" into the Local Services form on camera
# 4. Opens peekm.numa to show the proxy working # 4. Shows LAN accessibility badge ("local only" / "LAN")
# 5. Records via ffmpeg and converts to optimized GIF # 5. Checks a blocked domain
# 6. Opens peekm.numa to show the proxy working
# 7. Records via ffmpeg and converts to optimized GIF
set -euo pipefail set -euo pipefail
@@ -228,18 +230,10 @@ dig @127.0.0.1 github.com +short > /dev/null 2>&1
dig @127.0.0.1 ad.doubleclick.net +short > /dev/null 2>&1 dig @127.0.0.1 ad.doubleclick.net +short > /dev/null 2>&1
sleep 3 sleep 3
# --------------- Scene 2: Check Domain blocker (3-6s) --------------- # --------------- Scene 2: Add peekm service via UI (3-7s) ---------------
log "Scene 2: Check Domain — blocked tracker..." log "Scene 2: Adding peekm.numa service..."
type_into "#checkDomainInput" "ads.doubleclick.net" 0.04
sleep 0.3
# Click Check button
run_js "document.querySelector('#checkDomainInput').closest('form').querySelector('.btn').click();"
sleep 2
# --------------- Scene 3: Add peekm service via UI (6-10s) --------------- # Services panel is now first — scroll to it
log "Scene 3: Adding peekm.numa service..."
# Scroll to Local Services form
run_js " run_js "
var svcPanel = document.getElementById('serviceForm'); var svcPanel = document.getElementById('serviceForm');
if (svcPanel) svcPanel.scrollIntoView({behavior: 'smooth', block: 'center'}); if (svcPanel) svcPanel.scrollIntoView({behavior: 'smooth', block: 'center'});
@@ -251,20 +245,34 @@ sleep 0.2
type_into "#svcPort" "6419" 0.1 type_into "#svcPort" "6419" 0.1
sleep 0.3 sleep 0.3
# Click "Add Service" # Click "Add Service" — LAN badge ("local only" or "LAN") will appear
run_js "document.querySelector('#serviceForm .btn-add').click();" run_js "document.querySelector('#serviceForm .btn-add').click();"
sleep 1.5 sleep 2
# --------------- Scene 4: Open peekm.numa (10-14s) --------------- # --------------- Scene 3: Open peekm.numa (7-11s) ---------------
log "Scene 4: Opening peekm.numa in browser..." log "Scene 3: Opening peekm.numa in browser..."
open "http://peekm.numa/view/peekm/README.md" 2>/dev/null || true open "http://peekm.numa/view/peekm/README.md" 2>/dev/null || true
sleep 4 sleep 4
# --------------- Scene 5: Back to dashboard (14-17s) --------------- # --------------- Scene 4: Back to dashboard (11-14s) ---------------
log "Scene 5: Back to dashboard — LOCAL queries visible..." log "Scene 4: Back to dashboard — LAN badges + LOCAL queries visible..."
osascript -e "tell application \"System Events\" to set frontmost of (first process whose unix id is $CHROME_PID) to true" 2>/dev/null || true osascript -e "tell application \"System Events\" to set frontmost of (first process whose unix id is $CHROME_PID) to true" 2>/dev/null || true
sleep 3 sleep 3
# --------------- Scene 5: Check Domain blocker (14-17s) ---------------
log "Scene 5: Check Domain — blocked tracker..."
# Scroll down to blocking panel
run_js "
var blockPanel = document.getElementById('blockingPanel');
if (blockPanel) blockPanel.scrollIntoView({behavior: 'smooth', block: 'center'});
"
sleep 0.5
type_into "#checkDomainInput" "ads.doubleclick.net" 0.04
sleep 0.3
# Click Check button
run_js "document.querySelector('#checkDomainInput').closest('form').querySelector('.btn').click();"
sleep 2
# --------------- Scene 6: Terminal-style dig overlay (17-20s) --------------- # --------------- Scene 6: Terminal-style dig overlay (17-20s) ---------------
log "Scene 6: dig proof overlay..." log "Scene 6: dig proof overlay..."
DIG_RESULT=$(dig @127.0.0.1 peekm.numa +short 2>/dev/null | head -1) DIG_RESULT=$(dig @127.0.0.1 peekm.numa +short 2>/dev/null | head -1)