main 32ecd71726: attach A=1 persistence read; add B=2; remove B=1. Thumbnail reads excluded by call stack. A persisted record unchanged. Reload retained A. Codex gpt-6.1-sol described screenshot after send; response visible after reload. pr 7f3d61b3be7924a84e37612da9f7b98b01b1a366: attach A=1 persistence read; add B=1 (B only); remove B=0. Thumbnail reads excluded by call stack. A persisted record unchanged. Reload retained A; expanded preview rendered original screenshot. blacksmith: vp i && cd apps/web && vp test run src/components/chat/composerImagePersistence.test.ts --project unit: 3 passed. pr runtime: sent retained image after reload through web client to Codex gpt-6.1-sol. Reply: "the screenshot shows a new t3 code thread for the image-verification project, with an empty prompt box, a left sidebar, and repository controls in the upper right." neighbor: attached B then removed all attachments in existing thread; sent text-only follow-up. Reply: "text follow-up works". Persisted draft attachments empty. No source changes. Existing CI: 31 successful, 0 failing, 0 pending. Native desktop/mobile, other providers, remote/tunnel, wall-clock speed and full suites not exercised.