Skip to content
Home/Trust Center/Media posts proof
PUBLIC PROOF ARTIFACT

Photo and video posts now ride the real social runtime.

Sprint 6 adds media attachments to the shared post pipeline: upload into media assets, attach through validated post media rows, enrich moderation payloads, and render previews directly in feed cards.

Sprint 6 proofPhoto + video postsUpdated 2026-04-01
4
Published proof checks
4
Max photos per post
1
Max video per post
WHY THIS EXISTS
Media claims should survive contact with the actual feed.

HOWFAR now proves that media posts are not a parallel demo system: they use the existing media asset runtime, existing post pipeline, existing moderation enqueue path, and existing feed delivery surface.

  • Media-only post creation is supported on the shared post API
  • Attachment ownership and quota rules are enforced before publish
  • Feed cards render the returned media without inventing a second feed stack
4Published proof checks
4Max photos per post
1Max video per post

Published checks

Composer uploads media before post creation

The social composer now uploads image/video files into the existing media asset runtime first, then creates a post using durable attached asset IDs instead of raw temporary blobs.

  • `src/components/social/PostComposer.tsx`
  • `src/app/api/media/assets/route.ts`
  • `src/app/api/posts/route.ts`
Attachment validation is ownership-aware and quota-bounded

Post creation validates that every attached asset is owned by the caller, already marked READY, limited to image/video MIME types, and kept within the current photo/video quota rules.

  • `src/lib/server/postMedia.ts`
  • `src/app/api/posts/route.ts`
  • `tests/unit/api/posts.moderation.spec.ts`
Feed items render photo and video previews inline

The feed API now emits media metadata for attached assets, and the feed card renders image grids or inline video playback from the existing authenticated asset content route.

  • `src/app/api/feed/[feedType]/route.ts`
  • `src/components/os/feed/feedTypes.ts`
  • `src/components/os/feed/FeedCard.tsx`
End-to-end proof covers upload → media-only post → feed visibility

The integration suite now proves an uploaded image can be attached to a media-only post and returned through the real feed API with the expected preview metadata.

  • `tests/integration/media-assets.integration.spec.ts`
  • `tests/unit/api/feed.routes.spec.ts`
  • `tests/unit/api/posts.moderation.spec.ts`
Dock