Merge remote-tracking branch 'origin/worktree/web-multimodal-image-input' into worktree/web-multimodal-image-input

# Conflicts:
#	.agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
#	apps/web/tests/code-mode-fixture.snapshot.ts
#	apps/web/tests/image-display.snapshot.ts
#	docs/architecture.i18n.yaml
#	docs/module-graph.md
#	packages/client/test-runtime/tests/runtime.spec.tsx
#	packages/client/ui-conversation/src/client/skeleton/ConversationSession.tsx
#	packages/client/ui-conversation/tests/terminal-card.spec.tsx
#	packages/client/ui-trajectory/src/client/layout.ts
This commit is contained in:
creatixchu
2026-07-30 10:46:50 +08:00
38 changed files with 75 additions and 444 deletions

View File

@@ -639,12 +639,12 @@ function assistantSourceBlock(block: AssistantBlock): TrajectorySourceBlock {
callId: block.callId,
toolName: block.name,
}
// Durable attachment reference: bytes live behind the session-authorized
// loader, so the pure record carries identity, not a fetchable src.
// Attachment refs carry no fetchable bytes, so the record shows the
// durable metadata instead of an inline preview.
case 'image': return {
type: 'image',
content: block.attachment.name ?? String(block.attachment.attachmentId),
...(block.alt === undefined ? {} : { imageAlt: block.alt }),
content: stringifySourceValue(block.attachment),
...(block.alt !== undefined ? { imageAlt: block.alt } : {}),
}
case 'other': return sourceBlock(block.block)
}