Skip to content

Release 0.2.0: merge dev to main#90

Merged
threehappypenguins merged 35 commits into
mainfrom
dev
Jul 2, 2026
Merged

Release 0.2.0: merge dev to main#90
threehappypenguins merged 35 commits into
mainfrom
dev

Conversation

@threehappypenguins

Copy link
Copy Markdown
Owner

VideoSphere 0.2.0

Release notes for changes on dev since main (0.1.1).

Highlights

  • YouTube import — Import videos from a connected YouTube account, preview and trim in the browser, then save to a draft and upload to platforms on Upload & Save.
  • Draft labels — Color-coded organizational labels on the Uploads list, with profile-level label management.
  • SermonAudio cross-publish & scheduling — Cross Publish on publish (Facebook, X, Instagram), plus scheduled publication via publishTimestamp.
  • Dashboard refresh — The former Drafts section is now Uploads, with nested history routes and a mobile navigation drawer.

✨ New features

YouTube import

  • End-to-end pipeline: resolve source URL → download → trim → draft → platform upload.
  • In-modal trim preview (proxied HTML5 player) with keyframe-aware range slider.
  • Import picker paginates two videos at a time; supports streamed broadcasts and row thumbnails.
  • Server-side import job scheduling; platform upload deferred until Upload & Save.
  • Cancel with confirmation; downloads interrupt cleanly on cancel.
  • Friendly errors for private/unavailable videos.

Draft labels

  • Create, edit, and delete organizational labels with custom colors.
  • Apply labels to drafts from the Uploads list; mobile-friendly chip layouts.
  • Profile settings section for managing labels.

SermonAudio

  • Cross Publish enabled on publish, with connection-aware draft UI.
  • Schedule publications with a datetime picker and scheduled upload status.
  • Instagram added as a Cross Publish destination.
  • Social connections API for cross-publish account discovery.

Dashboard & navigation

  • /dashboard/drafts/dashboard/uploads (legacy routes redirect automatically).
  • Upload and distribution history nested under /dashboard/uploads/history.
  • Livestream history remains under /dashboard/livestreams/history.
  • Mobile nav drawer; improved quick actions and onboarding tour updates.

Scheduling

  • Single-field free-form time entry in the schedule picker.
  • Schedule picker popover layout fixes.

🐛 Bug fixes & hardening

  • YouTube import: Near-expiry preview refresh; hardened start/preview/finalize paths; OAuth handling improvements; bounded preview media cache.
  • Livestreams: MongoDB pagination for history/import lists.
  • Draft labels: Stricter validation, cascade removal on bulk delete, 404 handling for missing profiles, no partial-success label sync failures.
  • SermonAudio: Auto-publish default restored when clearing a schedule.
  • Dashboard: Nav drawer state derived correctly; streamed history reconciled on first page load only.

📦 Deployment & ops

Docker

  • Production image now includes ffmpeg and yt-dlp (required for YouTube import).
  • Rebuild and redeploy the image for this release.

Optional environment variables

# YT_IMPORT_WORKDIR=/tmp/yt-import          # default: /tmp/yt-import
# YT_IMPORT_MAX_DURATION_SECONDS=14400      # default: 4 hours

feat(sermon-audio): enable Cross Publish on publish with connection-aware draft UI
…-elements

feat(drafts): add organizational labels with colors and mobile-friendly list layouts
feat(sermon-audio): add publishTimestamp scheduling with scheduled upload status
…instagram

feat(sermon-audio): add Instagram as a Cross Publish destination
fix(scheduling): add single-field free-form time entry and fix schedule picker popover layout
…n first page only, and rename Videos page components
refactor(dashboard): rename drafts to videos, nest history routes, and add mobile nav drawer
@threehappypenguins threehappypenguins self-assigned this Jul 2, 2026
@threehappypenguins
threehappypenguins marked this pull request as ready for review July 2, 2026 23:58
@threehappypenguins
threehappypenguins merged commit 95c5ae3 into main Jul 2, 2026
2 checks passed
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