# Collapsed composer visual proof

AI-assisted; verified with the tests and tools listed above.

`prove-composer.mjs` is a standalone driver for the real web app. It has no dependency on a scenario start helper or an existing pairing file. It creates a new home at the checkout's migration level, disables paid providers, starts the checkout's server and Vite, creates a synthetic project and replayed assistant response through the public CLI, and pairs its browser with a generated credential. Authentication is completed before recording starts. It stops the exact process groups it spawned.

Prerequisites: `vp i` in each checkout; the repository's `playwright-core` dependency and its Chromium headless shell (`node scripts/node_modules/playwright-core/cli.js install --only-shell chromium ffmpeg`). Node must support the checkout's TypeScript CLI.

```sh
node prove-composer.mjs "$BASE_CHECKOUT" "$OUTPUT" before 15733 15673
node prove-composer.mjs "$HEAD_CHECKOUT" "$OUTPUT" after 16733 16673
```

Each invocation creates a new timestamped output directory. Logs and observations are local diagnostic files; the public evidence consists of selected screenshots, composer-crop matrices and videos. The driver accepts arbitrary checkout/output paths. No saved credential or private filesystem path is needed.

The browser uses Chromium, light theme, a 639 × 850 CSS-pixel viewport, and then 390 × 850 for the citation repeat. It selects “first fixture” in the assistant response, clicks Cite, saves without a comment, clicks the response to collapse, expands, and repeats the collapsed/expanded captures at 390 pixels.

Reference coverage uses the app's structured clipboard import. The terminal has saved text (“Build completed successfully.”), and the driver opens its popover to show that backing payload. Annotation, element, review, thread and environment references likewise carry valid records. A deliberate missing terminal and absent mention/skill-context records test unresolved presentation. The element import becomes an annotation. The environment is a synthetic record named Build host. Image and file references come from the normal file picker after typing a short prefix, which makes images insert inline chips. No real user data is used.

Before each still, the driver requires two identical screenshots taken 500 ms apart. Reference matrices crop only the composer region of those stills, with collapsed and expanded columns; they do not alter the UI content. Full stills and the recorded interactions are also provided.
