Skip to content

test(self-driving): e2e harness + snapshots#767

Open
gewenyu99 wants to merge 9 commits into
mainfrom
e2e-self-driving-snapshots
Open

test(self-driving): e2e harness + snapshots#767
gewenyu99 wants to merge 9 commits into
mainfrom
e2e-self-driving-snapshots

Conversation

@gewenyu99

@gewenyu99 gewenyu99 commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Problem

The e2e test harness for the self-driving onboarding flow was mixed into the feature PR. This lifts it out so the product code reviews on its own.

Changes

Stacked on #760 — everything e2e for self-driving:

  • Driver registration for the new screens — action-registry (integration-check, handoff, and detect-screen entries), e2e-profile (decideE2eAction cases + the integrate profile field), wizard-ci-driver (exposes integrate in read_state).
  • Snapshot host (tui-host) — drives the composed run (detect → integrate → handoff), auto-picks a monorepo sub-app, and keeps wizard_ask live for the driver (WIZARD_ASK_AUTODRIVE) so ask-driven flows run headlessly.
  • Flow definition (e2e.json) + its profile registration.
  • Offline flow-trace snapshot covering integration-first and already-integrated.
  • Re-enables the e2e-harness test suite that the base PR excludes from its run.

Test plan

  • pnpm test — the e2e-harness suite (driver exhaustiveness + the flow-trace snapshot) runs here.
  • Live captured run — with a properly-scoped key, the self-driving flow now runs end-to-end in the headless harness to the success outro (GitHub answered done, sources/scouts configured, report written).

👇 👇 Don't skip this — expand the snapshots below to watch the harness drive self-driving all the way to the ✅ success outro 👇 👇

👉 Testing — the live captured run that lands on the ✅ success outro (click to expand) 👈

Live captured self-driving run — the harness drives the real TUI to the ✅ success outro. Click any frame to enlarge.

01-self-driving-intro

01-self-driving-intro

02-auth

02-auth

03-run

03-run

04-run

04-run

05-run

05-run

06-run

06-run

07-run

07-run

08-run

08-run

09-run

09-run

10-run

10-run

11-run

11-run

12-run

12-run

13-run

13-run

14-run

14-run

15-run

15-run

16-run

16-run

17-run

17-run

18-run

18-run

19-run

19-run

20-run

20-run

21-run

21-run

22-run

22-run

23-run

23-run

24-wizard-ask

24-wizard-ask

25-run

25-run

26-run

26-run

27-run

27-run

28-run

28-run

29-run

29-run

30-run

30-run

31-run

31-run

32-run

32-run

33-outro

33-outro

@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci error-tracking-upload-source-maps
  • /wizard-ci mcp-analytics
  • /wizard-ci misc
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci error-tracking-upload-source-maps/android
  • /wizard-ci error-tracking-upload-source-maps/cicd-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-nested-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-single-stage-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-gitlab-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-monorepo-pnpm-node-react
  • /wizard-ci error-tracking-upload-source-maps/cicd-monorepo-raw-node-react
  • /wizard-ci error-tracking-upload-source-maps/cicd-ssh-vps-node-raw
  • /wizard-ci error-tracking-upload-source-maps/flutter
  • /wizard-ci error-tracking-upload-source-maps/ios
  • /wizard-ci error-tracking-upload-source-maps/next
  • /wizard-ci error-tracking-upload-source-maps/next-no-posthog
  • /wizard-ci error-tracking-upload-source-maps/node-raw
  • /wizard-ci error-tracking-upload-source-maps/node-rollup
  • /wizard-ci error-tracking-upload-source-maps/node-rollup-typescript-plugin
  • /wizard-ci error-tracking-upload-source-maps/node-webpack
  • /wizard-ci error-tracking-upload-source-maps/nuxt-3-6
  • /wizard-ci error-tracking-upload-source-maps/nuxt-4-3
  • /wizard-ci error-tracking-upload-source-maps/react-native
  • /wizard-ci error-tracking-upload-source-maps/react-vite
  • /wizard-ci error-tracking-upload-source-maps/rust
  • /wizard-ci mcp-analytics/custom-dispatcher
  • /wizard-ci mcp-analytics/typescript-sdk
  • /wizard-ci misc/quack-quack
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

gewenyu99 commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from 506f218 to 29200fc Compare June 30, 2026 00:32
@gewenyu99 gewenyu99 force-pushed the vincent/wizard-self-driving-handoff branch 2 times, most recently from 82c757e to adb713c Compare June 30, 2026 00:37
@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from 29200fc to b2621ad Compare June 30, 2026 00:37
@gewenyu99 gewenyu99 force-pushed the vincent/wizard-self-driving-handoff branch from adb713c to 48dccdb Compare June 30, 2026 01:37
@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from b2621ad to ed0f866 Compare June 30, 2026 01:37
@gewenyu99 gewenyu99 force-pushed the vincent/wizard-self-driving-handoff branch from 48dccdb to 3967468 Compare June 30, 2026 02:15
@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from ed0f866 to 2ea5fa0 Compare June 30, 2026 02:15
@gewenyu99 gewenyu99 force-pushed the vincent/wizard-self-driving-handoff branch from 3967468 to e8f3054 Compare June 30, 2026 02:37
@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from 3547e31 to 4ee849e Compare June 30, 2026 02:37
Base automatically changed from vincent/wizard-self-driving-handoff to main June 30, 2026 13:31
gewenyu99 and others added 4 commits June 30, 2026 11:26
Stacks the self-driving e2e testing onto the feature. The detect screen is
interactive-only, so it's listed no-action; the harness covers the rest of
the flow plus the offline flow-trace snapshot. Re-enables the e2e-harness
test suite the base PR excludes from its run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
in-program-phases.ts was removed; the host now advances each composed step
the same way run-wizard does (auth → run steps → gating screens).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
run-step composition replaced runProgram/completePhase with run/
completeRunStep; the trace test completes the integrate-run step the same way.
Regenerate the self-driving golden (detect -> integrate -> handoff -> run).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- tui-host injects the detect pick (detect the framework at the install dir,
  single-app fixtures) so the live snapshot run advances past the interactive
  picker the store driver can't actuate.
- e2e.json path now reflects the real flow (detect, integration run, handoff).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gewenyu99 gewenyu99 force-pushed the e2e-self-driving-snapshots branch from a980d5d to d3f1d54 Compare June 30, 2026 15:28
gewenyu99 and others added 3 commits June 30, 2026 14:31
The auto-pick detected the framework at the repo root, which a Turborepo root
reports as generic node, so it would integrate the workspace root. Scan apps/
then packages/ for the first sub-app with a registered framework, falling back
to the root for a single-app fixture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ving's asks

E2E snapshotting is driven, not CI — the host answers wizard_ask via its driver,
so it sets WIZARD_ASK_AUTODRIVE and the runner keeps the ask bridge wired despite
ci (which here is only for headless auth). Self-driving's profile declines every
ask (ask: cancel) so the agent sets nothing up and walks to the outro.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cancelling declined the required GitHub step and aborted. Answering with the
first option gives each ask its affirmative 'continue' ("GitHub connected →
done"), so with a scoped key the run completes to the success outro. Reverts
the unused cancel strategy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gewenyu99

Copy link
Copy Markdown
Collaborator Author

/wizard-ci-snapshots self-driving/turbo-monorepo

@ablaszkiewicz ablaszkiewicz force-pushed the e2e-self-driving-snapshots branch from 1a2cfaf to a57e9e4 Compare July 2, 2026 15:43
@gewenyu99

Copy link
Copy Markdown
Collaborator Author

/wizard-ci-snapshots self-driving/turbo-monorepo

@wizard-ci-bot

wizard-ci-bot Bot commented Jul 2, 2026

Copy link
Copy Markdown
Details

🧙 Wizard CI Results

Trigger ID: 98958d2
Workflow: View run

App Confidence PR YARA
self-driving/turbo-monorepo N/A Failed (logs)

Configuration

Setting Value
Wizard ref e2e-self-driving-snapshots
Context Mill ref main
PostHog ref master

Search for trigger ID 98958d2 in wizard-workbench PRs.

The snapshot pass-check read only ${appDir}/package.json, but a monorepo
installs the SDK into the picked sub-app (e.g. apps/expo), so hasPosthogDep
false-negatived and the 'posthog dependency added' assertion failed even
though the integration ran and the outro was reached. Scan the root plus
apps/* and packages/* (mirrors pickIntegrationTarget).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gewenyu99

Copy link
Copy Markdown
Collaborator Author

/wizard-ci-snapshots self-driving/turbo-monorepo

@wizard-ci-bot

wizard-ci-bot Bot commented Jul 2, 2026

Copy link
Copy Markdown

🧙 Wizard CI Results

Trigger ID: eabef96
Workflow: View run

App Confidence PR YARA
self-driving/turbo-monorepo N/A #2316 (logs)

Configuration

Setting Value
Wizard ref e2e-self-driving-snapshots
Context Mill ref main
PostHog ref master

Search for trigger ID eabef96 in wizard-workbench PRs.

@gewenyu99 gewenyu99 marked this pull request as ready for review July 2, 2026 21:33
@gewenyu99 gewenyu99 requested review from a team and sortafreel July 2, 2026 21:33
// snapshot/MCP host answers via its driver and sets WIZARD_ASK_AUTODRIVE.
// CI/signup with neither has no answerer, so we omit the bridge and the tool
// returns an actionable error rather than hanging on a never-resolving prompt.
const askDisabled =

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to keep this enabled when we run snapshot CI (and in general for CI on these interactive skills)

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