# Claude re-import proof

Both commits ran the real web app with separate fresh T3 homes and identical synthetic Claude data. Browser: Chromium, light theme, 1280 × 800 CSS pixels. No provider turn was started. Provider execution was disabled; transcript discovery and import used the real server.

1. Run `python3 driver.py base init` (use `head` for the other side).
2. In the corresponding checkout, run `vp i`, then start `T3CODE_DEV_SEED=0 CLAUDE_CONFIG_DIR=<evidence-directory>/<side>/claude vp run dev --home-dir <evidence-directory>/<side>/home`.
3. Pair the browser and wait until sign-in completes. Add `<evidence-directory>/<side>/transcript-demo` as a project through `node apps/server/src/bin.ts project add <project-path> --title transcript-demo --base-dir <home-path>`.
4. Open `/welcome`. Click **Review all 1**, **Select all**, then **Import threads and start**. Both sides report **Imported 1 thread**.
5. Expand **Settled**, then open **October prompt**. Its messages are **October prompt** and **October answer**. Run `python3 driver.py <side> snapshot`.
6. Run `python3 driver.py <side> append` to append **November prompt** and **November answer** to the same transcript.
7. Open `/welcome` again. Click **Review all 1**, **Select all**, then **Import threads and start**.
8. Run `python3 driver.py <side> snapshot`. Reopen **October prompt** and inspect the history.

Base 4bf5d53d93eedc45ca67d4042a33ca974a8ef567: reports **Imported 1 thread** a second time; history remains October-only; recorded transcript size changes from 607 to 1218 bytes.

Head b420c610cc5c5b01b60a05f0dd79e6bd189e0722: reports **Some history was not imported / 1 thread could not be imported.**; history remains October-only; recorded transcript size remains 607 bytes while the source is 1218 bytes. The fix warns instead of refreshing existing history.

The recordings include both imports. The second success appears around 00:54 in the base recording; the warning appears around 00:57 in the head recording. Idle time is retained. Grey masks conceal environment labels, synthetic workspace paths, and the composer footer. Stills were captured after two browser screenshots at least 500 ms apart were byte-identical, then cropped to the top 400 CSS pixels to omit the composer footer. Provider-status errors unrelated to importing were dismissed for the final stills.

`runtime-evidence.json` contains read-only database observations, reduced to synthetic message text and transcript size/mtime. No database rows were written directly.

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