Skip to content

fix: recover video jobs and modernize Studio asset libraries - #123

Merged
faresmohamed260 merged 58 commits into
mainfrom
studio/automatic-refresh-video-recovery
Aug 25, 2026
Merged

fix: recover video jobs and modernize Studio asset libraries#123
faresmohamed260 merged 58 commits into
mainfrom
studio/automatic-refresh-video-recovery

Conversation

@faresmohamed260

@faresmohamed260 faresmohamed260 commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Studio reliability + asset-library update:

Reliability:

  • persist completed video results from the background recovery path so reloaded/interrupted video jobs cannot remain running indefinitely
  • persist recovered video poster + MP4 through the same durable result path used by the foreground poll
  • keep Jobs automatic polling and remove its manual Refresh button
  • automatically refresh Gallery, Favorites, Collections, and open collection contents every 5 seconds while visible
  • refresh library data immediately when the window regains focus or the tab becomes visible
  • preserve the currently loaded Gallery depth during background refreshes instead of collapsing back to the first page
  • remove manual Refresh buttons from Gallery and Favorites

Gallery / Creatives:

  • desktop asset-library header with Creatives, Uploads, and future Elements destination plus Search aligned right
  • desktop filter row for Type, Model, Date, and Favorites
  • desktop Batch Actions, Newest / Oldest sorting, and Compact / Comfortable density controls
  • existing Collections are exposed as an expandable Gallery organization row and stay automatically refreshed
  • Batch Actions use a floating bottom toolbar for Select All, Favorite, Download, Add to collection, Delete, and close
  • mobile uses the compact Creatives / Uploads / Elements header plus Collections, Filter, Sort, Layout, and Manage controls
  • mobile Search and filters expand on demand to preserve card space
  • mobile batch management uses the responsive bottom action tray
  • Gallery history API supports server-side date and favorites filtering
  • Gallery image thumbnails use centered cover cropping regardless of source aspect ratio

Persistent Uploads library:

  • Uploads is now a real enabled Gallery section instead of a disabled placeholder
  • add studio_uploads Supabase catalog with durable R2 keys under uploads/YYYY/MM/..., favorites, names, dimensions, MIME type, size, metadata, and timestamps
  • keep transient generation-reference uploads under the existing sources/... prefix so temporary and library assets remain distinct
  • support PNG, JPEG, and WebP uploads up to 25 MB using the existing signed R2 upload route; finalize verifies the stored R2 object before cataloging it
  • list/search uploads, newest/oldest sorting, favorites-only filtering, rename, download, favorite, and permanent delete
  • upload tile and responsive asset grid; mobile cards use the taller 3:4 proportions from the supplied reference
  • desktop/mobile Manage mode with Select All, Favorite, Download, Delete, and selection state
  • asset detail viewer with rename, favorite, overflow actions, Set as Reference, and Generate Video
  • Set as Reference reuses the stored asset in Edit mode; Generate Video reuses it in Video mode
  • Uploads automatically refresh while visible and on focus/visibility changes
  • Elements remains intentionally disabled until a real persisted Elements library exists

Validation and regression coverage:

  • dedicated Uploads contract covers durable catalog/R2 behavior, CRUD, batch actions, preview, and Create reuse wiring
  • Playwright exercises the Uploads ticket -> signed PUT -> finalize flow and desktop/mobile interaction states
  • approved visual baselines now include Uploads desktop, asset detail, mobile, and mobile Manage states
  • production Supabase migration applied successfully; security advisor reports no issues

Final validation on d7a2b967b86695c48313fea476c541ece02dc079:

  • Studio CI: PASS
  • Backend Architecture CI: PASS
  • Required Check Compatibility: PASS
  • Studio Visual Preview + approved regression baselines: PASS

The previously observed production stuck video was manually reconciled earlier and no queued/running jobs remained afterward. All temporary patch/baseline helper workflows were removed before this final validation run.

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deployment failed for project studio with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/faresmohamed260-6733s-projects?upgradeToPro=build-rate-limit

@faresmohamed260
faresmohamed260 marked this pull request as ready for review August 25, 2026 02:28
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
studio Ready Ready Preview Aug 25, 2026 3:39am

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deployment failed for project studio with the following error:

Resource is limited - try again in 1 day (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/faresmohamed260-6733s-projects?upgradeToPro=build-rate-limit

@faresmohamed260 faresmohamed260 changed the title fix: recover video jobs and auto-refresh Studio views fix: recover video jobs and modernize Studio Gallery Aug 25, 2026
@faresmohamed260 faresmohamed260 changed the title fix: recover video jobs and modernize Studio Gallery fix: recover video jobs and modernize Studio asset libraries Aug 25, 2026
@faresmohamed260
faresmohamed260 merged commit 52b0880 into main Aug 25, 2026
9 of 10 checks passed
@faresmohamed260
faresmohamed260 deleted the studio/automatic-refresh-video-recovery branch August 25, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant