S1 (strip_modalities): Add three Document test cases to TestStripImageContent:
- Document with image/png MIME → stripped
- Document with application/pdf MIME → preserved
- Document part with nil Document pointer → preserved (defensive nil-guard)
S2 (transcript): Add golden tests for Document rendering:
- TestUserMessageWithImageDocument → image chip with name/mime/size
- TestUserMessageWithPDFDocument → attachment chip with name/mime/size
- TestUserMessageWithTextDocument → attachment chip with name/mime (no size for text)
- TestFormatBytes → boundary tests for 0B, 512B, 1023B, 1536B, 1MB, 2MB, 1.5MB
S3 (transcript): Add comment to writeUserMessage documenting the 'what was
sent to the model' design decision: the text part in MultiContent contains
the user's typed text PLUS dimension notes from image resizing and inlined
file headers, which is intentional for transcripts. Callers wanting only
the raw typed text should read msg.Message.Content directly.
Assisted-By: docker-agent