Conversation details drawer gains an Artefacts card: a horizontal strip of image/video thumbnails collected from the conversation's projects'/services' .ai/artefacts/<date>/<sessionId>/ folders, opening the full-screen media viewer seeded with the whole set. - backend/artefacts.py: list a conversation's artefacts across its tagged projects/services + traversal-safe single-file resolution; wired into /api/conversation (artefacts field) and a new GET /api/artefact serve route. - ImageWidget maps Read paths under <project|service>/.ai/artefacts/ to the new route (inline preview keeps working with the new convention); ScreenshotWidget recognizes both the new artefact output path and the legacy docs/screenshots one. - scripts/backfill-artefacts.py: one-off migration that mines archived transcripts for docs/screenshots/ + data/ media mentions and copies the surviving files into the right project's artefact folder (400 files across 120 past conversations imported). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB