fix(wizard,studio): agrupar correcciones Cursor de Wizard y DramaBox - #279
Merged
Merged
Conversation
Pinning persist to the pre-open collection reused that snapshot for every checkpoint in the same advance. A conflict retry only patched its revision, so the next persist cloned the pre-merge list and dropped workflows the merge had just adopted. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
…o 1s setDurationSeconds used a video floor of 1s, so Wizard prepare and the Advanced slider rewrote the TTS 0=auto sentinel into a one-second clip. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
Las preguntas "how do I launch the video?" y how-to largos (>240) caían en resume/explicit generation y lanzaban un job de Studio. Clasificar how-to antes de esos atajos y mirar la ventana inicial. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
El clasificador de cancel tomaba la preposición española "para" como el
imperativo de parar, así que "dime los pasos para generar un vídeo"
cancelaba la tarea GPU activa. Las paráfrasis how-to sin "how"
("tell me the steps to generate") encolaban prepare + start_generation.
Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
JS word boundaries are ASCII-only, so accented qué/por qué never matched the informational-turn allowlist and the Wizard replaced the model answer with a false empty-turn receipt. Fold diacritics before the classifier. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_fcd2f528-cd03-479e-b5be-0ba4bb36d68f) |
This was referenced Sep 9, 2026
PR Review — Loreframe StudioRisk: low Automated review from Findings
Changed files
CONTRIBUTING checklist
Posted by the repo PR review workflow. Re-runs on each push to the PR. |
This was referenced Sep 9, 2026
Code healthQuality score: 56.4/100Higher is better. The score is a trend dashboard; the independent ratchet below remains the CI gate.
Change vs PR base: +0.0 points.
Markdown, JSON catalogs and tests are out of this table. Only Most complex functions
Trend vs baseline
Warnings
Ratchet passed. |
25 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen ejecutivo
Qué cambia
Agrupa en un solo PR contra
developmentcinco correcciones de Cursor que ya tenían sentido por separado: persistencia CAS del Wizard, duración auto de DramaBox, preguntas how-to,paraeducativo vs cancelar, yqué/por quésilenciados.Para qué sirve
Había cinco PR pequeños al mismo base. Este PR aplica las mismas ideas sobre
origin/developmenty deja un único cambio listo para revisar.Impacto para el usuario
0(auto) en vez de forzar 1 s.Riesgo
Estado
Summary
Replaces Cursor PRs #263, #269, #272, #273 and #274 with one branch from
origin/developmentedf93aa6.Wizard CAS (fix(wizard): no borrar workflows hermanos tras un merge CAS a mitad de un avance #263 remaining commit). After fix(wizard): no perder el checkpoint al cambiar de carpeta a mitad de un paso #258 pinned persist to the pre-
open()collection, a CAS retry only copiedrevisionback. The next persist in the sameadvance()cloned the pre-merge owner and dropped sibling workflows.adoptPersistMerge()copies remote-only/newer workflows into the live owner collection and keeps the in-memory objectsadvanceUnlockedis mutating.DramaBox auto duration (fix(studio): no convertir la duración auto de DramaBox en 1 s #269).
setDurationSeconds(0)used the video floor of 1 s. DramaBox declaresaudio_onlyandduration_slider.min=0(0 = auto). The setter now allows 0 only in that case; video models still clamp to ≥1 s.How-to must not generate (fix(wizard): no encolar generación ante preguntas how-to #272).
How do I launch the video?matched explicit generate/resume classifiers. Those classifiers now rejectisHowToGenerateQuestion. Classification uses the first 240 characters so a long explanation after the question stays educational. Comic how-to is answered before the generic how-to stripper.Spanish
para(fix(wizard): no cancelar ni generar ante frases educativas con para #273).\bpara\bplusvídeotreated “Dime los pasos para generar un vídeo” as cancel. Imperativeparais now only at sentence start and only with a job object (tarea/cola/generación), never media or an infinitive. Educational paraphrases (dime los pasos,qué debo configurar) are how-to, not generate.Accented qué/por qué (fix(wizard): no silenciar preguntas con qué o por qué #274). JS
\bis ASCII-only, soQué/por quéfailedallowsExplanationand showed a false empty-turn receipt. The request is NFD-normalized and combining marks stripped before the word-boundary patterns.Image-command drafts #276/#277/#278 are not in this PR: those files do not exist on
developmentand the refined ideas already live in #27565ed2852.Overview
Wizard text classification, Wizard workflow persist, and Studio duration clamping. No backend, receipts, or MCP changes.
Detailed changes
Backend
Unchanged.
UI and Wizard
wizardWorkflowRuntime.ts: adopt CAS merge into the pinned owner collection.studioConfigurationSlice.ts: keep TTS auto duration 0.agentActions.ts: how-to vs generate;paravs cancel.wizardTurnReport.ts: fold accents for explanation policy.Data, provenance and compatibility
No storage, receipt or workspace-name contract change.
Files and ownership
ui/src/features/agent/wizardWorkflowRuntime.ts+ test — CAS siblingsui/src/stores/studioConfigurationSlice.ts+ test — DramaBox 0ui/src/features/agent/agentActions.ts+ test — how-to / paraui/src/features/agent/wizardTurnReport.ts+ test — qué/por quéIntentionally untouched: image command admission (#275), MCP, launchers,
ui/src/index.css.Validation
Date (UTC): 2026-09-09
Base SHA: edf93aa
Head SHA: 6523bd7
Validation scope: focused
python scripts/verify_clean_repo.py— PASSpython -m compileall— N/A (no Python files in this PR)Focused Python tests: N/A
cd ui && npm run i18n:check— not required; no copy catalog changeUI tests:
npx tsx --tsconfig tsconfig.app.json --import ./tests/setupI18n.ts --test tests/wizardWorkflowRuntime.test.mjs tests/architectureSlices.test.mjs tests/agentActions.test.mjs tests/wizardTurnReport.test.ts— 109 pass / 0 faileslint on changed files
--max-warnings=0— PASScd ui && npm run build— pending CIgit diff --check— PASSE2E/smoke checks: N/A (classifier/persist/duration unit coverage; no real generation)
Code quality
main: pending CICI and review
CI of this HEAD: pending
Independent agent review of this HEAD: pending
Human merge click (operational, not code review): pending
Reviewed at current HEAD
Earlier review; HEAD has changed since (stale)
Pending
Unavailable
Coste de la tarea
Notes and limitations
agentActions.ts; they auto-merged here. Do not land the old PRs on top of this one.main.Follow-up work
developmentuntil that feature lands.mainstill teach contracts the code does not fulfill).Checklist
Note
Low Risk
Changes are localized classifier and persist fixes with broad unit tests; residual risk is edge-case Spanish/English phrasing still mis-routed as cancel or generate.
Overview
Bundles five UI fixes: Wizard intent classification, turn presentation, workflow CAS persistence, and Studio duration clamping.
Wizard / agent intent tightens when educational phrasing must not touch the GPU queue.
isHowToGenerateQuestiongains broader EN/ES patterns and only inspects the first 240 characters so long follow-ups stay “how-to.” Video/image/audio/3D/resume classifiers andreconcileAgentTurnWithRequestnow reject how-to turns (keeping navigation-only actions) and run comic/how-to handling earlier. Spanish cancel detection no longer treats preposition para in phrases like “pasos para generar un vídeo” as parar; imperative para is limited to sentence-start + job objects.Wizard receipts normalize accents before
allowsExplanationso Qué / por qué questions keep the model reply instead of a false “no action” receipt.Wizard workflow runtime adds
adoptPersistMergeon CAS retry so merged sibling workflows from another tab are adopted into the live collectionadvanceUnlockedmutates, avoiding the next persist in the same advance from dropping them.Studio
setDurationSeconds(0)is preserved foraudio_onlymodels withduration_slider.min === 0(DramaBox auto duration); video models still floor at 1s.Tests cover Spanish para, how-to vs generate, CAS siblings, TTS duration 0, and accented questions.
Reviewed by Cursor Bugbot for commit 6523bd7. Configure here.