Skip to content

feat(host): add ace demo with scripted teammates and mocked data - #711

Open
agorischek wants to merge 3 commits into
mainfrom
agorischek-demo-mode
Open

agorischek wants to merge 3 commits into
mainfrom
agorischek-demo-mode

Conversation

@agorischek

@agorischek agorischek commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Adds ace demo, a self-contained way to show Ace with nothing of yours: a made-up beats-demo drum machine project with two seeded channels, delay-effect (adding a tempo-synced delay) and synthwave-theme (restyling the sequencer), and the teammates idan and davidslater (real GitHub accounts, so their avatars and names load from GitHub), who open channels, type, talk, react and ask the channel agent on a 15-second loop.

  • ace demo [--port 4150] reruns ace serve --loopback --demo as a child process in a temporary home (ACE_HOME, ACE_CONFIG_HOME, its own keychain service) and removes the home when it stops. Catalog and keys read their home and identity when they load, so it needs its own process.
  • Agents use a faux demo/agent model (pi-ai fauxProvider). Script ask steps can carry a reply and thinking, and anything off-script gets a note that this is a demo. No keys or models are used, and captions and recaps are skipped because no real model is available.
  • The demo host has its own tailnet, skips the Tailscale watcher, and refuses to call gh. Otherwise the real GitHub account's avatar showed up next to the made-up people.
  • importSeed takes a seed object and a shared option, so the teammates' asks are admitted.
  • The viewer is ghost, GitHub's deleted-user placeholder, so no real person's avatar appears.
  • docs/demo.md documents ace demo and the reply/thinking fields.

To try it from a checkout: bun app build && bun ace demo, then open the printed sign-in link.

Validation:

  • bun types: passed
  • bun run ci: passed (0 errors, the 7 warnings already on main)
  • Smoke test of bun ace demo:
    • seeding, the script steps (no demo.step.failed), the scripted agent reply with thinking, and the off-script reply all checked in the browser;
    • a process-group Ctrl-C exits 0 and removes the temporary home.
  • Not tested: the packaged app's ace demo (config.cli = [execPath] with argv0).

Built in Ace

No. Built in the GitHub Copilot app (Copilot CLI agent) on a Mac, and checked in its browser panel against the demo host. Pushed with git push instead of lane push because lane isn't installed on this machine. The commit has a Why: trailer for lane to promote later.

agorischek and others added 3 commits October 27, 2026 15:43
ace demo runs a throwaway loopback host in a temporary home: a made-up
acme-shop project, two seeded channels, synthetic teammates who type,
talk, react and ask, and a faux demo/agent model that answers from the
script. It uses no keys, models, Tailscale or GitHub account, and removes
its home when it stops.

Why: apps/host/src/catalog.ts#const current | ace demo must never read Tailscale, gh or the real home; its people and data are all made up
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1cbb2262-7e0b-45cd-a29e-d68510600884
…ve channels

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1cbb2262-7e0b-45cd-a29e-d68510600884
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1cbb2262-7e0b-45cd-a29e-d68510600884

This branch has not been deployed

No deployments
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.

1 participant