Skip to content

refactor: extraer Music, Trailer y Productions de Story Lab con i18n - #91

Merged
IAnMove merged 2 commits into
mainfrom
refactor/storylab-music-productions
Sep 2, 2026
Merged

refactor: extraer Music, Trailer y Productions de Story Lab con i18n#91
IAnMove merged 2 commits into
mainfrom
refactor/storylab-music-productions

Conversation

@IAnMove

@IAnMove IAnMove commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Contrato

Extrae Music, Trailer, Productions y CompactVideoWorkspace de StoryLabPanel.tsx sin 16-prop drilling de componentes. El panel sigue siendo dueño de generate, cola musical, staging y uploads. Las pestañas importan chrome compartido, useStoryLabVisuals() y los handlers reales.

Workspace sigue siendo el nombre de producto. Las rutas físicas siguen siendo Output folder / Carpeta de salida.

Zona i18n

Namespace existente storyLab (EN+ES). Boy scout limitado a las superficies extraídas: Music, Trailer, Productions, CompactVideoWorkspace y controles de formato de vídeo. Overview, assets y assembly quedan con deuda.

Lo que queda en el panel

Tests locales

  • npx tsc -b --pretty false
  • npm run i18n:check
  • npm test (499)
  • npx eslint . --max-warnings=0
  • pytest -q tests/test_story_lab_audio_ui.py (17)
  • scripts/architecture_contracts.py

E2E simulado: ui/e2e/specs/story-lab-music-productions.spec.ts abre Story Lab y comprueba el chrome extraído de Music, Productions y Trailer. El live Wizard wizard-generation.spec.ts no se toca (Ask to the Wizard, Director, Story Lab).

No mezclar hasta CI verde.


Note

Medium Risk
Large UI decomposition on Story Lab production paths (music, trailer, film/comic staging to Director); behavior is intended to be unchanged but regression surface is broad across tabs and video-format persistence.

Overview
Splits Music, Trailer, Productions, and the compact prep workspace out of StoryLabPanel.tsx into dedicated modules (StoryMusicTab, StoryTrailerTab, StoryProductionsTab, StoryProductionsMusicPanel, CompactVideoWorkspace, plus StoryVideoFormatControls / storyLabVideoFormat.ts and storyLabMusic helpers). The panel still owns generation, music queue/cancellation, staging to Director, and file uploads; tabs receive real handlers via props instead of duplicating logic.

Compact prep now uses useStoryLabVisuals() for image/upload flows (fewer props than the old inline component). Shared chrome types (StoryLabTab, ProductionReviewIssue, requiredPreparationButton) move to storyLabChrome.tsx.

i18n: visible copy on the extracted surfaces goes through the storyLab namespace (EN+ES); check-i18n-catalogs.mjs registers the new files and forbids hard-coded strings like “Music bible” in those pilots.

Quality gates: Python source-contract tests and a new Playwright spec (story-lab-music-productions.spec.ts) assert against the split files; SLICE_QUEUE.md marks #88 landed and this slice as the active medium PR.

Reviewed by Cursor Bugbot for commit de945c1. Configure here.

Saca las pestañas Music, Trailer y Productions y CompactVideoWorkspace
de StoryLabPanel, reutiliza el chrome y los handlers del panel, y mueve
las etiquetas visibles de esa zona al namespace storyLab (EN+ES).
@IAnMove

IAnMove commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

@cursor review

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

PR Review — Loreframe Studio

Risk: medium
Scope: 21 file(s); +3564/-1862; React UI, docs

Automated review from scripts/analyze_pr.py. This is a heuristic pass (no LLM) so humans still own the merge decision.

Findings

  • medium — Large pull request
    3564 additions / 1862 deletions. Reviewers will have an easier time with smaller, focused PRs.
  • medium — Very large file change (ui/src/features/stories/StoryMusicTab.tsx)
    ui/src/features/stories/StoryMusicTab.tsx adds 479 lines. Consider splitting the PR.
  • medium — Very large file change (ui/src/features/stories/StoryProductionsMusicPanel.tsx)
    ui/src/features/stories/StoryProductionsMusicPanel.tsx adds 446 lines. Consider splitting the PR.
  • medium — Very large file change (ui/src/i18n/locales/en/storyLab.json)
    ui/src/i18n/locales/en/storyLab.json adds 454 lines. Consider splitting the PR.
  • medium — Very large file change (ui/src/i18n/locales/es/storyLab.json)
    ui/src/i18n/locales/es/storyLab.json adds 454 lines. Consider splitting the PR.
  • low — UI changed — rebuild before merge
    Run cd ui && npm run build (CI already does this). Pinokio Update rebuilds for end users; keep ui/dist untracked.

Changed files

  • added: ui/e2e/specs/story-lab-music-productions.spec.ts, ui/src/features/stories/CompactVideoWorkspace.tsx, ui/src/features/stories/StoryMusicTab.tsx, ui/src/features/stories/StoryProductionsMusicPanel.tsx, ui/src/features/stories/StoryProductionsTab.tsx, ui/src/features/stories/StoryTrailerTab.tsx, ui/src/features/stories/StoryVideoFormatControls.tsx, ui/src/features/stories/storyLabMusic.ts, ui/src/features/stories/storyLabProductions.ts, ui/src/features/stories/storyLabVideoFormat.ts
  • modified: docs/development/SLICE_QUEUE.md, tests/test_model_selection_persistence.py, tests/test_story_lab_audio_ui.py, tests/test_story_lab_trailer_ui.py, ui/scripts/check-i18n-catalogs.mjs, ui/src/features/stories/StoryLabPanel.tsx, ui/src/features/stories/storyLabChrome.tsx, ui/src/i18n/locales/en/storyLab.json, ui/src/i18n/locales/es/storyLab.json, ui/tests/i18nFoundation.test.tsx, ui/tests/storyLabResponsive.test.tsx

CONTRIBUTING checklist

  • python scripts/verify_clean_repo.py
  • python -m compileall -q app/services app/launch.py scripts
  • cd ui && npm run build if the UI changed
  • No weights, CivitAI sidecars, or generated guides
  • Stays local-first (no required accounts / telemetry)

Posted by the repo PR review workflow. Re-runs on each push to the PR.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit ee5e5cd. Configure here.

Python CI still sliced StoryLabPanel for Gemma copy, video-format
controls and trailer chrome. Those strings and handlers now live in the
extracted tabs, video-format module and storyLab catalogs.
@IAnMove

IAnMove commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit de945c1. Configure here.

@IAnMove
IAnMove merged commit 007061a into main Sep 2, 2026
5 checks passed
@IAnMove
IAnMove deleted the refactor/storylab-music-productions branch September 5, 2026 11:53
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