# HANDOFF AKTUALNY — stan na teraz **Ostatnia aktualizacja:** 2026-06-11 (sesja #14) **Sesja:** #14 — audyt spójności + wdrożenie rekomendacji #1–#4 i #6–#13 --- ## ZŁOTA ZASADA (Nie zmieniać) Nie usuwać `director.js`, `mockEngine.js`, `runComfyEngine.js`. `wan_workflow_api.json` = lokalny szablon; Studio wysyła pełny `workflow_api_json` (bez node 51). **RunComfy Serverless API** — deployment GPU tworzy zespół RunComfy z `wan_workflow_api.json`; Studio wysyła pełny `workflow_api_json` per job. **My Workflows w panelu nie jest wymagane**. --- ## TL;DR - **Audyt spójności (read-only)** → P0–P2; wdrożono **#1–#4** (recovery jobów, zombie `updated_at`, stale `directorPlan`, testy API) oraz **#6–#13** (UI, kanon, mock CLIP, auth, PORT, deleteProject). - **Testy:** 13 suite'ów, **92/92** pass (`npm test --prefix backend`). - **LLM:** OpenRouter odrzucony — **Groq only**; `/api/health` i `.env.example` bez mylącego Gemini. - **UI:** synopsis odcinka, domyślna postać/tło, `scene_index`, Scenarzysta (suggest) w Studio, lock `canon_acceptance_in_progress`. - **RunComfy:** nadal niestabilny deployment — **priorytet bez zmian**. --- ## Wizja w jednym akapicie Katalog główny → **Plan odcinka** (wybór z katalogu, preferencje, sceny, lista „do dostarczenia”) → **akceptacja** → **Reżyser produkcji** (auto: klatki, prompty, render) → paczka `E01_SC*.webm` + manifest. Odcinek 45 s = wiele klipów (2–10 s każdy), montaż u twórcy. --- ## Co zrobić jako pierwsze 1. **RunComfy Serverless API** — deployment od zespołu RunComfy (z `wan_workflow_api.json`); checklist: [RUNCOMFY_DEPLOYMENT.md](RUNCOMFY_DEPLOYMENT.md). Obecny `b36cb944…` = freeze WAN21 → ticket RunComfy + nowy Inference URL. 2. Po podmianie `RUNCOMFY_ENDPOINT`: `npm run audit:runcomfy --prefix backend`, potem `npm run smoke:runcomfy --prefix backend` (`--repeat 2`). 3. Oczekiwany wynik: log sampling po WAN21 → `backend/output/{jobId}.webm`. 4. **F1:** model danych + UI planu odcinka + pełny Scenarzysta + sekcja braków materiałów. 5. **F2:** Reżyser produkcji czytający zaakceptowany plan. --- ## Stan techniczny | Element | Status | |---------|--------| | Panel `/projects` (projekty + odcinki) | ✅ | | „Zatwierdź Kanon” + `SeriesMemoryPanel` | ✅ | | Groq / `style_tags_en` (EN CLIP, bez PL w Node 55) | ✅ | | `workflow_api_json` bez node 51 | ✅ | | `WAN_LENGTH=33` w `.env` | ✅ | | Zombie joby (Dashboard + `updated_at`) | ✅ | | Recovery jobów po restarcie backendu | ✅ | | Stale reset `directorPlan` przed renderem | ✅ | | RunComfy payload / polling | ✅ | | RunComfy deployment stabilny | ❌ ciężki / freeze WAN21 | | WEBM powtarzalnie | ⚠️ 1 sukces, potem stale | | Plan odcinka / pełny Scenarzysta / katalog w UI | ⚠️ suggest w Studio; pełny plan F1 — ❌ | | Synopsis / director_notes odcinka w UI | ✅ EpisodeList | | Domyślna postać/tło projektu | ✅ ProjectEditor + Studio | | `scene_index` + kanon wieloscenowy | ✅ Studio + scoped `setJobCanon` | | `canon_acceptance_in_progress` w UI | ✅ JobStatus lock/spinner | | PORT spójny 4001 | ✅ | | Usuwanie projektu z jobami | ✅ deleteProject + test | | Mock bez PL w positive_prompt | ✅ buildVisualSceneBlock | | Auth dev (API_KEY) | ✅ opcjonalny, localhost wyłączony | | Testy backend (92) | ✅ | | Reżyser pod plan | ❌ F2 | --- ## `.env` — ważne klucze ```env VIDEO_ENGINE=runcomfy RUNCOMFY_ENDPOINT=https://api.runcomfy.net/prod/v2/deployments/b36cb944-1eed-4cea-8e63-ef99667db566/inference GROQ_API_KEY=... WAN_LENGTH=33 PORT=4001 # API_KEY=... # opcjonalnie poza localhost ``` --- ## Prompt do nowego czatu ```text Kebabkiller Studio — sesja #14. Audyt spójności wdrożony (#1–#4, #6–#13); 92 testy pass; Groq only. Przeczytaj 00_START_TUTAJ.md, HANDOFF_AKTUALNY.md, 03_AGENT_STATE_AND_TASKS.md. Priorytet: RunComfy Serverless (ticket + nowy deployment z wan_workflow_api.json) lub diagnoza freeze WAN21, potem smoke WEBM przy WAN_LENGTH=33. Kontynuacja produktowa: F1 (plan odcinka + pełny Scenarzysta + katalog). ``` **Koniec sesji:** `HANDOFF` --- ## Dokumentacja wizji | Plik | Zawartość | |------|-----------| | [05_EPISODE_PIPELINE.md](05_EPISODE_PIPELINE.md) | Pełna wizja: plan, role, flow, MVP, fazy | | [CAPABILITIES.md](CAPABILITIES.md) | Limity silnika (klatki, czas, zasady scen) | | [01_PROJECT_VISION.md](01_PROJECT_VISION.md) | Skrót wizji | | [03_AGENT_STATE_AND_TASKS.md](03_AGENT_STATE_AND_TASKS.md) | Roadmapa F0–F3 | ## Pliki kluczowe (implementacja) ```text backend/src/index.js ← startup recovery jobów backend/src/video/queue.js ← recoverVideoJobsOnStartup frontend/src/utils/jobLifecycle.js ← zombie (updated_at) frontend/src/utils/directorPlanSync.js ← stale plan przed renderem backend/src/db/models.js ← deleteProject, setJobCanon scoped backend/src/api/auth.js ← opcjonalny API_KEY backend/src/ai/director.js ← style_tags_en, Scenarzysta suggest backend/src/tests/api.integration.test.js ← testy HTTP API frontend/src/components/ProjectEditor.jsx frontend/src/components/EpisodeList.jsx frontend/src/components/JobStatus.jsx ← canon_acceptance_in_progress lock frontend/src/pages/Studio.jsx ← scene_index, suggest, defaults backend/src/video/runComfyEngine.js backend/.env ```