Skip to content

Publish the complete YouTube-style Shorts experience - #5

Draft
ark1st wants to merge 27 commits into
mainfrom
agent/shorts-data-comments-20260818
Draft

Publish the complete YouTube-style Shorts experience#5
ark1st wants to merge 27 commits into
mainfrom
agent/shorts-data-comments-20260818

Conversation

@ark1st

@ark1st ark1st commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Publishes the current YouTube-style Shorts feed and full-page navigation flow.
  • Adds free play, member discovery, per-settlement comments, capture/save/share behavior, and responsive 16:9 presentation.
  • Removes the obsolete Talk route while preserving the existing GitHub Pages demo artifacts.

Why

The repository source now matches the locally verified 14th-cohort experience from the first screen through every settlement and member page.

Deployment impact

Build the production image from dpbr_front/Dockerfile and route /api/v1 plus backend media paths through the reverse proxy.

Validation

  • svelte-check: 0 errors, 0 warnings
  • Clean-checkout Vite production build passed

Known dependency note

npm audit currently reports 8 dependency advisories; no automatic major-version fixes were applied in this feature PR.

Publish the current YouTube-style feed, member discovery, free-play navigation, per-settlement comments, capture/share behavior, and responsive 16:9 presentation without replacing the existing Pages demo.

Constraint: The GitHub Pages demo remains a separately generated static artifact.
Rejected: Replace github-pages with the Svelte build | The existing public demo has its own preserved deployment flow.
Confidence: high
Scope-risk: moderate
Directive: Build the production container from dpbr_front/Dockerfile and point /api/v1 at the backend.
Tested: svelte-check; Vite production build
Not-tested: Production SSH deployment
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f0dc4583-3650-4667-a316-e909977c700f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

ark1st added 26 commits August 18, 2026 01:28
Use the newly approved 256-pixel MapleWind favicon and advance the cache key so browsers fetch it immediately.

Constraint: Browsers cache favicon responses aggressively.
Rejected: Replace the asset without a URL revision | Existing visitors could retain the previous icon.
Confidence: high
Scope-risk: narrow
Directive: Increment the favicon query version whenever the icon bytes change.
Tested: svelte-check; Vite production build
Not-tested: HTTPS favicon delivery
Remove the synthetic character-card route, download the member avatar directly, and continue every completed member feed with cross-member random Shorts.

Constraint: Preserve settlement PNG export and share behavior.

Rejected: Redirecting to a new random route after each member | causes loading resets instead of a continuous Shorts feed.

Confidence: high

Scope-risk: moderate

Directive: Keep per-slide member metadata keyed by settlement when extending the mixed random feed.

Tested: npm run check; npm run build; browser-tested direct avatar download, random free-play expansion, and one-item member random continuation.

Not-tested: Native iOS download shelf presentation.
Keep the compact four-button mobile bar while swapping the two center actions to match the requested priority.

Constraint: Desktop guide navigation order remains unchanged.

Confidence: high

Scope-risk: narrow

Tested: npm run check; npm run build.

Not-tested: Physical-device tap ergonomics.
Replace the redundant random shortcut with a global chronological feed that keeps cross-member metadata correct and falls through to random playback at the end.

Constraint: Desktop free play remains random and existing member feeds keep their current behavior.

Rejected: Sorting already-loaded member cards in the client | cannot create one complete cross-member timeline.

Confidence: high

Scope-risk: moderate

Directive: Keep chronological mode backed by the global paginated settlement contract.

Tested: npm run check; npm run build.

Not-tested: Full production timeline traversal through the final record.
Constraint: Web Share requires HTTPS and unsupported browsers must not download implicitly.
Rejected: Server-render every share image | It does not enable the native share API and duplicates the existing PNG renderer.
Confidence: high
Scope-risk: narrow
Directive: Keep download behavior exclusive to the save action.
Tested: npm run check; npm run build
Not-tested: Physical iOS and Android share sheets
Constraint: The previous metadata referenced a missing image and an obsolete GitHub Pages URL.
Rejected: Reuse a settlement screenshot | A stable cohort thumbnail represents every route consistently.
Confidence: high
Scope-risk: narrow
Directive: Keep Open Graph images at 1200x630 and use absolute production URLs.
Tested: npm run check; npm run build; verified PNG dimensions and rendered output
Not-tested: Kakao and social crawler cache refresh
Constraint: The prior thumbnail used an invented symbol instead of the product's actual icon.
Rejected: Generic YouTube logo | The site already has a distinct MapleWind video-style icon.
Confidence: high
Scope-risk: narrow
Directive: Keep shared visuals aligned with the app favicon.
Tested: npm run check; npm run build; rendered 1200x630 PNG inspection
Not-tested: Social crawler cache refresh
Constraint: Small transparent sprites and tall photos need one predictable display boundary.
Rejected: Per-member frontend sizing rules | they would make future uploads inconsistent
Confidence: high
Scope-risk: narrow
Directive: Preserve the shared media bounds when adding team-message layouts.
Tested: npm run check; npm run build; local desktop and 390x844 visual smoke checks
Not-tested: Production visual smoke pending
Constraint: The previous ICO encoded dark corner pixels instead of transparency.
Rejected: A white square background | it would look equally boxed in dark browser themes
Confidence: high
Scope-risk: narrow
Directive: Keep favicon corner pixels transparent and provide both PNG and multi-size ICO fallbacks.
Tested: npm run check; npm run build; 256px PNG alpha and seven ICO sizes verified; local browser smoke
Not-tested: Production browser cache refresh pending
Constraint: Some browsers request /favicon.ico before parsing icon links.
Rejected: Relying only on versioned head links | it leaves the automatic root request at 404
Confidence: high
Scope-risk: narrow
Directive: Keep /favicon.ico synchronized with the versioned app favicon.
Tested: app check/build; binary equality and alpha verification
Not-tested: Production fallback path pending
… title

Constraint: Preserve the stable admin-team route and internal backend character key while changing visible labels.
Rejected: Show only real names | the requested identity format is nickname and position.
Confidence: high
Scope-risk: narrow
Directive: Keep 운영진 한마디 and 비대위 wording consistent across live and GitHub Pages surfaces.
Tested: svelte-check with zero warnings; Vite production build; GitHub Pages source check; local browser verification of list and detail views.
Not-tested: Physical iOS and Android devices.
Constraint: Hashed assets remain immutable, but index.html and _app/env.js select each release and must revalidate.
Rejected: Disable caching for all static assets | it would discard safe long-lived caching for hashed bundles.
Confidence: high
Scope-risk: narrow
Directive: Keep only the HTML shell and runtime env file non-cacheable.
Tested: frontend source validation and diff check; production header verification follows in deployment.
Not-tested: Browser cache behavior across every mobile browser.
Constraint: Keep the committee name and role intact while replacing the secondary organization line with the requested club label.\nRejected: Change the public channel name | the requested edit targets the descriptive line only.\nConfidence: high\nScope-risk: narrow\nDirective: Keep the GitHub Pages trial and live Svelte frontend in sync for this label.\nTested: svelte-check reported 0 errors and 0 warnings; Vite production build passed.\nNot-tested: Browser screenshot after deployment.
Constraint: Preserve the existing channel navigation while removing only the committee page options control.\nRejected: Remove the search affordance too | the request targeted the options menu specifically.\nConfidence: high\nScope-risk: narrow\nDirective: Keep the login back action and static trial navigation consistent.\nTested: svelte-check 0 errors and 0 warnings; Vite build passed; GitHub Pages source validation passed.\nNot-tested: External browser click-through after deployment.
Constraint: Keep search available on member channels while simplifying the committee channel to navigation only.\nRejected: Remove the whole toolbar | the back action remains useful on the committee page.\nConfidence: high\nScope-risk: narrow\nDirective: Keep the static trial and live frontend behavior aligned.\nTested: svelte-check 0 errors and 0 warnings; Vite build passed; GitHub Pages source validation passed.\nNot-tested: Browser screenshot after this final deployment.
Constraint: Distinct descriptions must render as a second line without duplicating descriptions equal to titles.
Rejected: Merging descriptions into backend titles | that would corrupt the existing title/description schema.
Confidence: high
Scope-risk: narrow
Directive: Use getSettlementCaption for Shorts surfaces that present a complete recap caption.
Tested: npm run check; npm run build; local visual verification of settlement 20 at desktop viewport.
Not-tested: Production browser before deployment.
Constraint: Preserve existing segment timing, fade, scrolling, comments, and mobile/desktop layouts.

Rejected: Client-side filename lookup | BGM identity belongs in the Settlement API.

Confidence: high

Scope-risk: moderate

Directive: Keep user pause independent from mute, comments, and visibility recovery.

Tested: svelte-check; production build; mobile 390x844 and desktop 1440x900 browser smoke; pause/resume and BGM details.

Not-tested: Production deployment.
Constraint: Preserve larger branding on login and onboarding surfaces.

Rejected: Scaling every logo globally | Brand-led screens need their existing emphasis.

Confidence: high

Scope-risk: narrow

Directive: Keep navigation wordmarks compact and adjust brand-led surfaces separately.

Tested: svelte-check; production build; git diff check.

Not-tested: Production visual smoke before deployment.
Constraint: Preserve the red icon silhouette and the original header wordmark sizes.

Rejected: Shrinking the full favicon or navigation logo | The request targets only the white mark inside the favicon.

Confidence: high

Scope-risk: narrow

Directive: Regenerate PNG and all ICO sizes together when the favicon artwork changes.

Tested: visual asset inspection; seven ICO sizes; svelte-check; production build; git diff check.

Not-tested: Browser cache refresh on every client.
Constraint: Preserve user-initiated pause and the existing member-to-random feed transition.

Rejected: Looping the current static recap | Continuous movement better fits this image-led feed.

Confidence: high

Scope-risk: moderate

Directive: Cancel pending auto-advance whenever playback restarts or the active slide changes.

Tested: svelte-check; production build; 15-second segment advanced exactly one slide; user pause held the current slide for 16 seconds.

Not-tested: Production deployment.
Constraint: Follow the YouTube brand-lockup hierarchy without copying its play mark.

Rejected: Reusing the old COMMUNITY_PROJECT wordmark | It does not identify MapleWind clearly in the header.

Confidence: high

Scope-risk: narrow

Directive: Reuse BrandWordmark for navigation branding and keep brand-led login artwork separate.

Tested: svelte-check; production build; desktop header screenshot; Visual Ralph score 94.

Not-tested: Production deployment.
Constraint: The navigation should follow the compact YouTube lockup pattern without replacing the existing MapleWind symbol.

Rejected: Reusing the favicon tile as the header mark | It obscured the original multicolor brand asset.

Confidence: high

Scope-risk: narrow

Directive: Keep favicon presentation and in-product brand lockups as separate concerns.

Tested: npm run check; npm run build; desktop header visual verification score 94

Not-tested: physical mobile device rendering
Constraint: The red YouTube-style symbol stays while the adjacent name must use the established image wordmark.

Rejected: Plain text and the standalone multicolor symbol | Neither matches the requested legacy brand lockup.

Confidence: high

Scope-risk: narrow

Directive: Treat the app icon and legacy text wordmark as two deliberate assets in navigation.

Tested: npm run check; npm run build; git diff --check

Not-tested: physical mobile device rendering
Constraint: Match YouTube-like compact proportions without stretching either existing brand asset.

Rejected: Distorting the square app icon into a YouTube badge | It damages the MapleWind symbol.

Confidence: high

Scope-risk: narrow

Directive: Preserve the four-pixel lockup gap and intrinsic wordmark aspect ratio.

Tested: npm run check; npm run build; visual comparison score 95

Not-tested: physical mobile device rendering
Constraint: The world chips must disappear while search, pagination, and the complete member feed remain unchanged.

Rejected: Retaining a disabled world selector | It preserves controls the user explicitly removed.

Confidence: high

Scope-risk: narrow

Directive: Do not reintroduce world filtering into the home chip row.

Tested: npm run check; npm run build; git diff --check

Not-tested: local real-data visual capture was blocked by the production API CORS policy; production smoke follows deployment
Mirror the existing mobile date-order playback entry in both expanded and collapsed desktop guide rails while retaining free playback.

Constraint: Deploy only the desktop navigation addition; concurrent comment work must remain excluded.

Rejected: Replace free playback | the request asks for both playback modes on PC.

Confidence: high

Scope-risk: narrow

Directive: Keep desktop and mobile chronological navigation wired to the shared openChronologicalSettlements helper.

Tested: Svelte check with 0 errors and 0 warnings; production build; 1280px DOM visibility check.

Not-tested: End-to-end local API navigation was blocked by the production API CORS policy and will be smoke-tested after deployment.
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