Fix/2446 - #488
Open
conradmugabe wants to merge 4 commits into
Open
Conversation
Pre-existing formatting drift that the pre-commit hook rewrites on every commit (`pnpm prettier --write .` followed by `git add -u`). Landing it on its own keeps it out of the feature commits that follow. CHANGELOG bullets move from `*` to `-` because release-please writes `*` while prettier normalises to `-`; the workflow change is comment spacing. No behaviour change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q3ezWYYgj7NWocMXXNtJ31
The chat-history endpoint returns `human_files` / `ai_files` on every
message, populated from the backend's `ChatFileSerializer` (`id`, `name`,
`file_size`, `content_type`, `uploaded_by`, `uploaded_at`, `metadata`,
`processing_error`, `url`). Nothing in the app read them.
Add a renderer that normalises one entry and shows images inline and
everything else as a file card, reusing `ImageMessage` and `FileCard`
from the chat message components so history matches chat.
`url` is a presigned S3 link with `X-Amz-Expires=3600`, so it must never
be cached or persisted — each page load re-fetches a fresh signature, and
`ImageMessage`'s existing broken-image fallback covers an expired one.
The generated API client does not model these fields (`ChatHistoryItem`
is only `{ type, content, timestamp }`), so the entry type is
hand-written and tolerant of the plausible key spellings until the
OpenAPI spec catches up.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q3ezWYYgj7NWocMXXNtJ31
Conversation history showed only the text of each turn, so a message whose input was a file — or a file with little accompanying text — read as though the user had sent nothing, while the agent's reply discussed content the reader could not see. Type `human_files` / `ai_files` on the message and render them under the matching turn in both places history is shown: the desktop detail pane and the mobile preview modal. A turn can be an upload with no text at all, in which case the attachment's filename is the only meaningful conversation title we have, so fall back to it before the generic label. Verified against live data: an image renders inline and a PDF renders as a file card, both fetched from the presigned URL the API returns. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q3ezWYYgj7NWocMXXNtJ31
Contributor
PR E2E - FAILEDFull report, traces and screenshots
|
Contributor
PR E2E - FAILEDFull report, traces and screenshots
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist
Changes
Screenshots
Screencast.from.2026-09-04.19-11-56.mp4