# ACP native history comparison

Environment: web development client, Chromium, light theme, 1280 x 800 CSS pixels. Each commit runs its own server and fresh T3 home, with seeding disabled. Only synthetic conversation text is used. No turn is sent from T3.

The attached start-app.ts is the repository scenario launcher with one extra local ACP provider configured: Native history demo. Put import-acp-agent.mjs beside it in scripts/scenarios. The agent returns a native conversation via session/list and replays user_message_chunk, agent_thought_chunk and agent_message_chunk notifications during session/load.

Start each checkout separately with its own home and port:

    T3CODE_DEV_SEED=0 node scripts/scenarios/start-app.ts web <fresh-home> 127.0.0.1 <port>
    node apps/server/src/bin.ts project add <synthetic-git-repository> --title Garden --base-dir <fresh-home>

Pair using the link path written to <fresh-home>/pairing-path. Wait for the signed-in app before navigating.

1. Open Settings > Providers > Native history demo.
2. In Native sessions select Garden, click List sessions, and Import Native conversation.
3. Close Settings. Expand Working, then open Native conversation without sending a prompt.
4. On the fix, expand Worked for to expose the reasoning row. Base shows an empty conversation; fix shows the user request, reasoning and reply.
5. Create an empty reject-history file beside the ACP agent script. Return to provider Settings, list sessions, and Import Retry conversation.
6. Refresh the list. Base disables Imported. Fix offers Import again (the button label is Import).
7. Delete the reject-history marker, then refresh on base: it remains disabled. On the fix click Import again and open Retry conversation. Its existing thread now contains history. The sidebar still has two threads total, not three.

For privacy during Settings captures, input text was hidden with this presentation-only style:

    const style = document.createElement('style');
    style.textContent = 'input { color: transparent !important; }';
    document.head.append(style);

The initial import recordings were trimmed to the native-session list and local executable/argument paths were masked. All exported videos play at 2x speed. These redactions do not cover import controls or conversation content.

The attempted scenario file is also attached for transparency. Two scenarios:prove attempts could not complete: first, immediate post-pair navigation interrupted authentication; second, the driver did not expand the collapsed Working shelf. Verdicts come from the subsequent manual browser comparison, not those attempts.

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