forked from molecule-ai/molecule-core
Reviewer follow-up to PR #2134 (Optional finding). The history loader walked text on the user branch but never extracted file parts — so a chat reload after a session where the user dragged in a file rendered the text bubble but lost the download chip. Symmetric to the agent branch which already handles this via extractFilesFromTask. Wire shape from ChatTab's outbound POST: request_body = {params: {message: {parts: [ {kind: "text", text: "..."}, {kind: "file", file: {uri, name, mimeType?, size?}} ]}}} extractFilesFromTask walks `task.parts`, so we feed it `params.message` (the inner object that has the parts array). Three new tests: - hydrates file attachments from request_body - emits an attachments-only bubble when text is empty (drag-drop without caption — pre-fix the empty userText short-circuited and the row was dropped entirely) - internal-self predicate suppresses the row even with attachments (defence-in-depth for future internal triggers) Stacked on #2134; this branch's parent commit is its tip. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| e2e | ||
| public | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| components.json | ||
| Dockerfile | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| playwright.staging.config.ts | ||
| postcss.config.js | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
| vitest.config.ts | ||