# XLSX boolean extraction proof

Two separate checkouts and fresh databases, with T3CODE_DEV_SEED=0 and --no-seed.
Base: 73cbc6b1ede1692c2642b01cf55d9ef75c37c5f4.
Head: 4a574e531ecb83bb9f1962b2d4c6e5019324a803.
Web: Chromium, 1280x800 CSS viewport, device scale 2, light theme.

1. Generate flags.xlsx with make-workbook.py: Flags!A1 logical TRUE, B1 logical FALSE,
   C1 numeric 1, D1 numeric 0, using standard OOXML boolean cell encoding.
2. Start each checkout with `T3CODE_DEV_SEED=0 vp run dev --no-seed`.
3. Pair the browser and use the fresh default project's New thread.
4. Select the same flags.xlsx through the composer's Attach files input using browser-driver.js.
   The real upload pipeline creates the flags.xlsx 2 KB chip and writes the sidecar.
5. Open the real app terminal drawer and run showSidecar from browser-driver.js.
   This reads the server-written sidecar verbatim; it does not re-extract the workbook.
6. Capture the static chip and raw terminal output. Two screenshots 500 ms apart were pixel-identical
   on each side; both final captures were opened and visually inspected before upload.
7. Copy the raw sidecars with read-sidecars.py. The uploaded workbook SHA-256 matches on both sides:
   33a8a99c63db89ed1aabc20fe8069822363c61848c183782d7a71a7350eab704.

Base exact sidecar: `## Sheet: Flags\n1\t0\t1\t0`.
Head exact sidecar: `## Sheet: Flags\ntrue\tfalse\t1\t0`.

The scenario guidance was read first. Manual server-output proof was selected because the
attachment chip has no extracted-text preview. The terminal drawer makes the actual server
output visible without a paid agent or altered app UI. No tests were used as proof.
This is a static extraction result, so still captures show the relevant behavior.
