Skip to content

learn(demo): live-demo-autopilot — run the demo live with a take-over control panel - #602

Merged
MendixMau merged 3 commits into
masterfrom
learn/live-demo-autopilot
Oct 31, 2026
Merged

MendixMau merged 3 commits into
masterfrom
learn/live-demo-autopilot

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

Direct lane

What changed and why (one paragraph):
New on-demand skill skills/live-demo-autopilot.md: how to run a customer demo LIVE instead of as a video. Playwright drives the real app through scripted scenes, captions carry a WHY line, and a control panel lets the presenter pause and take over, resume, redo, skip, restart or stop. It merges two field builds: one contributed the desktop+phone layout, offline scenes, per-step traceability (process id + model element) and password-free tile sign-in; the other contributed the reliability layer (gate-based control, idle re-login, an app-health gate per scene, skip recovery, honest X/N summary) and the Mendix traps that each broke a run. The traps: the trial licence stops the runtime ~2.5 h after start; the 6-session cap, and when /xas/ logout really frees a slot; a focus-stealing panel pausing the run; SIGTERM closing the browser before sign-out. Skill text only, no code: both engines are macOS-bound, so shipping one would fail the portability bar. Also adds a routing row and a one-line cross-link from record-demo-video.md.

Impact

Row Answer
Process none: no new human step, gate or stage artifact; the skill is loaded on demand only
Dependencies bin/lib/skill-routing.tsv (one new row, tier ondemand, group verify, role test, stage 6), plus the files it re-renders (README.md, ROUTING.md, agents/test-agent.md, bin/gate-check.sh). No new tools; no artifact reads
Context cost 0 words. bin/render-routing.sh --check output is byte-identical on base (origin/master 2ba8158) and head (diff empty), e.g. stage 5 60203 words / 23 files and stage 6 49690 words / 17 files on both. The row is on-demand, so nothing always-loaded changed
Behaviour NOT RUN: situational skill text only (recommended, not required, per §4a); no baseline or stub text changed
Runtime n/a: no script on any hot path

Field evidence

  • Desktop + phone offline web-app demo (manufacturing app, 2026-10-20): 4 scenes across 4 users, all scenes passing (commit "Live e2e demo: all 4 scenes pass").

  • Three-app process-hub demo (2026-10-30): final unattended run steps passed 28/28 failed 0 gaps 0, with one app killed after scene 3 (the demo logged APP DOWN, waited, and carried on) and an 11 min pause after scene 4. The Stop test took the session count from 3 to 0. The licence root cause comes from the runtime log: start 11:18:58, LicenseService: Maximum run time exceeded at 13:48:58.

  • No client data anywhere in the diff (bin/check-no-client-data.sh with the denylist: no client data detected; the only new proper noun is the contributor credit in CHANGELOG)

  • Size cap: 8 files, 117 insertions / 1 deletion

  • Test tier: T0 (text and routing). render-routing.sh --check exit 0, check-scripts.sh 126/126 shell + 27/27 Node parse

  • For a new/changed instrument: n/a, no instrument

  • For a new skill: routing row added and rendered

  • CHANGELOG.md line appended under Unreleased, crediting the source

  • New bug entries: none

🤖 Generated with Claude Code

MendixMau and others added 3 commits October 30, 2026 23:58
…e-over control panel

Merged from two field builds (desktop+phone offline demo 4/4 scenes; three-app hub demo 28/28
with an app killed mid-run and an 11 min pause). Skill text only, on-demand routing row,
cross-link from record-demo-video.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y default

- Logout: a 200 proves nothing. Prove each logout by the System.Session
  count, and point at testing-shape.md, which measured /xas/ logout
  returning 200 with the session alive on Mendix 11.14. Keep the field
  run's timing recipe and fall back to mx.logout() if the count does
  not drop.
- Trial licence stop: 2-4 h, with the 2.5 h run named as one field
  observation; load-test.md section 9 covers both limits.
- Demo sign-in tiles: build them only into a demo or dev build, behind
  a constant that is off by default, and check it before any deploy.
- Live change request: run it on a copy or branch of the demo model.

render-routing --check in sync (baseline unchanged, 64,252);
check-no-private-citations clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018LeNWZV2sVH62vkgfYh5u5
@MendixMau
MendixMau merged commit 0db1c0e into master Oct 31, 2026
2 checks passed
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.

2 participants