Skip to content

feat(site): re-record the demo as a chaptered story, driven by a Playwright spec - #746

Merged
stefanhoelzl merged 1 commit into
mainfrom
demo
Oct 13, 2026
Merged

stefanhoelzl merged 1 commit into
mainfrom
demo

Conversation

@stefanhoelzl

Copy link
Copy Markdown
Owner
  • The old recorder (scripts/record-demo.ts) no longer started: bare node could not resolve the repo's extensionless imports. It is replaced by demo/record.demo.ts, a Playwright spec with its own config (playwright.demo.config.ts) that reuses the e2e fixtures.
  • The real app and claude CLI, answered by a scripted mock model (aimock, demo/agents.ts); GitHub is staged as local bare repos behind a git insteadOf rewrite plus a stand-in gh (demo/scaffold.ts), so every run tells the same story with no account, key or network.
  • Five chapters: clone acme/nimbus beside an open nimbus-api; an agent fans out into a workspace per look; a plugin automation opens a review workspace per pull request; an agent hibernates with a wakeup script until CI passes; the fan-out agent shows the looks side by side, asks which to keep and deletes the rest, itself included.
  • Filming (demo/film.ts): Xvfb + ffmpeg x11grab, a cut list with crossfades, chapter cards (the plugin YAML on its card), top captions and a spotlight on the sidebar row a caption is about. Every beat is asserted, so a missing beat fails the run.
  • pnpm demo:record writes site/public/demo.mp4 and the screenshot.png poster (re-recorded here); pnpm demo:smoke drives the story without filming and runs as a new "Demo smoke" CI job on every PR (~2 min).
  • Site feature cards: MCP Server and IDE Integration merge into "MCP and CLI Support"; new "Plugins & Automations" and "Hibernate & Wake"; Remote Projects dropped; copy refreshed.

🤖 Generated with Claude Code

…wright spec

The old recorder no longer started (bare node could not resolve the repo's
extensionless imports) and showed an outdated product. The demo is now
demo/record.demo.ts, run by its own Playwright config:

- the real app and claude CLI, with a scripted mock model (aimock), a staged
  GitHub (bare repos behind a git insteadOf rewrite) and a stand-in gh, so
  every run tells the same story with no account, key or network;
- five chapters: clone from GitHub, an agent fanning out into workspaces, a
  plugin automation creating review workspaces, hibernating with a wakeup
  script until CI passes, and picking one look while the agent deletes the rest;
- chapter cards, top captions and a spotlight for rows the caption is about,
  cut and encoded with ffmpeg; every beat is asserted.

`pnpm demo:record` films it into site/public; `pnpm demo:smoke` drives it
without filming, now a CI job on every PR. The site's feature cards gain
MCP and CLI Support, Plugins & Automations and Hibernate & Wake.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stefanhoelzl stefanhoelzl added the internal no user facing changes label Oct 13, 2026
@stefanhoelzl
stefanhoelzl enabled auto-merge (rebase) October 13, 2026 15:04
@stefanhoelzl
stefanhoelzl merged commit e0f9954 into main Oct 13, 2026
18 checks passed
@stefanhoelzl
stefanhoelzl deleted the demo branch October 13, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal no user facing changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant