Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
b88d5c1
fix(video-editor): pad mixed soundtrack to the video span
IAnMove Sep 11, 2026
94f648c
fix(picker): bound preview resources and cancel stale loads
IAnMove Sep 11, 2026
d14dc2e
fix(wizard): split generation.video capability complexity for CI
IAnMove Sep 11, 2026
777ec76
Merge pull request #328 from IAnMove/feat/world3d-scenario-templates-…
IAnMove Sep 11, 2026
100eedd
Merge pull request #329 from IAnMove/feat/unified-main-workspace-2026…
IAnMove Sep 11, 2026
ad7f2b0
Merge pull request #331 from IAnMove/feat/model-catalog-requirements-…
IAnMove Sep 11, 2026
4b5c9e5
Merge pull request #341 from IAnMove/grok/agente1-h15-preview-lifecyc…
IAnMove Sep 11, 2026
845c317
Merge pull request #332 from IAnMove/grok/agente1-h16-ci-cache-shards…
IAnMove Sep 11, 2026
96e23c4
Merge pull request #333 from IAnMove/grok/agente1-h09-video-editor-fr…
IAnMove Sep 11, 2026
6e17c8e
fix(ci): run new pytest modules instead of failing the shard
IAnMove Sep 11, 2026
8a8ebd3
Merge pull request #339 from IAnMove/grok/agente1-h01-native-video-20…
IAnMove Sep 11, 2026
4d3628b
Merge pull request #346 from IAnMove/grok/agente1-ci-shard-ungrouped-…
IAnMove Sep 11, 2026
7577006
fix(ui): restaurar el puente de eventos fuera del workspace de genera…
cursoragent Sep 11, 2026
25c447b
ci: retrigger checks after retarget to development
IAnMove Sep 11, 2026
3d09b41
fix(video3d): conservar el media de pantallas al aplicar un escenario
cursoragent Sep 11, 2026
b6882f1
ci: retrigger checks after retarget to development
IAnMove Sep 11, 2026
efbfb98
fix(ci): list generation.video tests in python-a
IAnMove Sep 11, 2026
4aa83e7
fix(ci): list generation.video tests in python-a
IAnMove Sep 11, 2026
6284b1d
feat(projects): portable scene packages with asset repair
IAnMove Sep 11, 2026
5ed49c3
fix(projects): zip body upload, simpler preflight, architecture inven…
IAnMove Sep 11, 2026
27fc39b
fix(projects): drop scene-package complexity under ratchet
IAnMove Sep 11, 2026
0d3df85
fix(projects): rebind sourceUrl-only media and avoid sidecar stem cla…
cursoragent Sep 11, 2026
c1d1f3c
fix(projects): split import helpers so scene_packages stays under 120…
IAnMove Sep 11, 2026
5684167
fix(projects): empty companion slots, sidecar hash reuse, shard membe…
IAnMove Sep 11, 2026
d6807cc
feat(activity): group jobs under request with receipts and recovery
IAnMove Sep 11, 2026
7d526ce
fix(activity): split lineage UI below complexity ratchet
IAnMove Sep 11, 2026
eacbfc1
fix(activity): stop importing Agent Mode from the activity slice
IAnMove Sep 11, 2026
388335b
feat(speech): interval lipsync editor and LAN-safe profile digests
IAnMove Sep 11, 2026
7bc2d79
fix(speech): split CueTimeline to satisfy complexity and TS2722
IAnMove Sep 11, 2026
1b71d2b
fix(speech): unique timeline playback label and digest E2E stub
IAnMove Sep 11, 2026
92b6bab
feat(fx): explosiones cinematográficas 3D y overlay 2D
IAnMove Sep 11, 2026
cfe6abc
test(wizard): MCP/Wizard corpus and usage guide
IAnMove Sep 11, 2026
1442ec2
fix(speech): split GLB locator and voice picker below complexity 15
IAnMove Sep 11, 2026
5e27248
fix(wizard): treat model3d as unpublished after generation.video landed
IAnMove Sep 11, 2026
a36a258
Merge pull request #334 from IAnMove/grok/agente2-h04-scene-packages-…
IAnMove Sep 11, 2026
11350a5
Merge pull request #335 from IAnMove/cursor/critical-bug-management-6c27
IAnMove Sep 11, 2026
0a80ca7
Merge pull request #338 from IAnMove/cursor/bc-f5ccc3d5-7be8-43cc-816…
IAnMove Sep 11, 2026
bca2fe3
Merge pull request #337 from IAnMove/grok/agente2-h02-activity-lineag…
IAnMove Sep 11, 2026
7479daa
feat(director): align lyric actions to source audio
IAnMove Sep 11, 2026
8e40f3a
fix(video-editor): restore 1/fps timebase after concat cuts
cursoragent Sep 11, 2026
c5e4045
ci: retrigger checks after retarget to development
IAnMove Sep 11, 2026
5aa359b
fix(generation): keep generation.video as one literal T2V window
cursoragent Sep 11, 2026
21c486d
fix(concat): keep xfade timebases and stop soundtrack from truncating…
cursoragent Sep 11, 2026
44a3ddd
fix(generation): drop Video Editor timebase from this PR
IAnMove Sep 11, 2026
d89a2eb
fix(concat): do not subtract song offset from soundtrack pad
cursoragent Sep 11, 2026
1817fa1
fix(fx): explosiones con fuego volumétrico, sin anillos ni destellos SVG
IAnMove Sep 11, 2026
7bb56cf
feat(fx): el overlay 2D usa el mismo blast 3D
IAnMove Sep 11, 2026
4bb4f07
fix(director): keep comic movie assembly as hard cuts
cursoragent Sep 11, 2026
220b109
fix(concat): expect apad in late-origin isolated concat test
cursoragent Sep 11, 2026
6d0d527
Merge pull request #336 from IAnMove/grok/agente2-h06-lipsync-timelin…
IAnMove Sep 11, 2026
2bd8a1e
Merge pull request #342 from IAnMove/grok/agente1-h17-wizard-corpus-2…
IAnMove Sep 11, 2026
a3d63be
Merge pull request #351 from IAnMove/feat/source-audio-lyric-timeline…
IAnMove Sep 11, 2026
915fb47
feat(fx): diez efectos de mundo y un portal con foto o vídeo
IAnMove Sep 11, 2026
5f8c159
fix(fx): accept cinematic world kinds on additive apply
cursoragent Sep 11, 2026
94f2743
Merge pull request #352 from IAnMove/cursor/critical-bug-management-3b78
IAnMove Sep 11, 2026
873031d
Merge pull request #349 from IAnMove/feat/explosion-fx-20260911
IAnMove Sep 11, 2026
c893287
Merge pull request #350 from IAnMove/cursor/critical-bug-management-c157
IAnMove Sep 11, 2026
9f08ef8
ci: retrigger checks after retarget to development
IAnMove Sep 11, 2026
b057dbe
fix(video-editor): restore 1/fps timebase after concat cuts
cursoragent Sep 11, 2026
2f60223
fix(fx): upload portal media instead of blob URLs that block save
cursoragent Sep 11, 2026
e5391ca
feat(system): add platform capability authority for macOS core/remote
IAnMove Sep 11, 2026
216070e
feat(macos): Apple Silicon core/remote install and start without CUDA
IAnMove Sep 11, 2026
8da714e
feat(macos): complete core/remote surface for Apple Silicon
IAnMove Sep 11, 2026
15ac8be
feat(macos): Video Editor FFmpeg export, uploads, comics and Generate…
IAnMove Sep 11, 2026
839ddd9
fix(macos): split profile selection and list new tests in python-b
IAnMove Sep 11, 2026
913e15f
fix(macos): persist Video3D and Wizard on the core profile
cursoragent Sep 11, 2026
abeeda1
Merge pull request #343 from IAnMove/cursor/critical-bug-management-0bda
IAnMove Sep 11, 2026
790778d
Merge pull request #356 from IAnMove/cursor/bc-69958910-b6ed-40f8-b87…
IAnMove Sep 11, 2026
475eaec
Merge pull request #355 from IAnMove/cursor/bc-f9dac663-7021-47fa-ba9…
IAnMove Sep 11, 2026
88c8570
feat(speech): reuse vocal analysis across shots
IAnMove Sep 11, 2026
d5bad21
fix(macos): accept core uploads as a raw body
IAnMove Sep 11, 2026
8e55943
feat(macos): Labs persistence, Meshy and MiniMax Music on core/remote
IAnMove Sep 11, 2026
4292e1b
feat(macos): MiniMax Image generate and Series remote planning
IAnMove Sep 11, 2026
ce71d59
feat(studio): prompt and recipe inspector with provenance
IAnMove Sep 11, 2026
53716ff
fix(macos): apply Series known-series bootstrap and normalize canon
cursoragent Sep 11, 2026
91e3294
fix(macos): treat MiniMax Image-01 as an image model
cursoragent Sep 11, 2026
e87997f
feat(productions): review desk to keep takes and redo a subset
IAnMove Sep 11, 2026
120dc8b
feat(scene3d): eight native campaign templates
IAnMove Sep 11, 2026
55b01db
feat(support): user-facing install and generation diagnostics
IAnMove Sep 11, 2026
fd2dc51
merge(macos): bring origin/development into development-mac-integration
IAnMove Sep 11, 2026
313d16c
fix(macos): copiar uploads al importar Story a Series en el perfil core
cursoragent Sep 11, 2026
a63bb19
Merge pull request #361 from IAnMove/cursor/bc-481f865b-8a11-4d96-91e…
IAnMove Sep 11, 2026
efae7a7
Merge pull request #370 from IAnMove/cursor/bc-2cb6a3fe-7de0-4839-ad6…
IAnMove Sep 11, 2026
51d7d61
fix(speech): type-safe decode cache, lint WorldSfx refs, balance shards
IAnMove Sep 11, 2026
8aa1a82
fix(ui): sync WorldSfx cue ref in an effect
IAnMove Sep 11, 2026
24270f2
fix(ui): sync WorldSfx cue ref in an effect
IAnMove Sep 11, 2026
bd83c81
fix(ui): sync WorldSfx cue ref in an effect
IAnMove Sep 11, 2026
e601a32
fix(support): drop unused sanitizePack import and lint WorldSfx refs
IAnMove Sep 11, 2026
404858c
Merge pull request #357 from IAnMove/grok/agente1-h07-speech-analysis…
IAnMove Sep 11, 2026
273ca49
Merge pull request #360 from IAnMove/grok/agente2-h14-generation-insp…
IAnMove Sep 11, 2026
be99d21
Merge pull request #362 from IAnMove/grok/agente2-h08-production-revi…
IAnMove Sep 11, 2026
640d9e1
Merge pull request #363 from IAnMove/grok/agente1-h13-campaign-templa…
IAnMove Sep 11, 2026
45b8a32
Merge pull request #364 from IAnMove/grok/agente1-h18-diagnostics-202…
IAnMove Sep 11, 2026
bd11978
feat(scene3d): document history, drafts and object inspector
IAnMove Sep 11, 2026
6d8c994
fix(scene3d): drop unused history test names and lint WorldSfx refs
IAnMove Sep 11, 2026
ad8cff1
fix(scene3d): unique inspector labels so speech E2E stays unique
IAnMove Sep 11, 2026
bc0b989
Merge pull request #365 from IAnMove/grok/agente2-h05-scene3d-history…
IAnMove Sep 11, 2026
460eb29
fix(scene3d): unique inspector control names for editor E2E
IAnMove Sep 11, 2026
14422b5
Merge pull request #376 from IAnMove/grok/fix-inspector-unique-labels
IAnMove Sep 11, 2026
12f8617
refactor(video-editor): extract HTTP router from launch runtime
IAnMove Sep 11, 2026
cc3f4a7
Merge pull request #367 from IAnMove/grok/agente1-h10-video-editor-ro…
IAnMove Sep 11, 2026
a410750
refactor(studio): extract startGeneration prepare and send
IAnMove Sep 11, 2026
aea5cf2
merge(macos): sync origin/development into development-mac-integration
IAnMove Sep 11, 2026
ccc870b
Merge pull request #368 from IAnMove/grok/agente2-h11-store-generatio…
IAnMove Sep 11, 2026
017cca3
fix(projects): pack media_portal sourceUrl in scene packages
cursoragent Sep 11, 2026
9553a0c
fix(macos): muxear el audio de Video3D en el perfil core
cursoragent Sep 11, 2026
3f77262
Merge pull request #371 from IAnMove/cursor/bc-cd31e706-b64b-4765-b3c…
IAnMove Sep 11, 2026
5684f21
fix(macos): parse core multipart uploads instead of saving the raw body
cursoragent Sep 11, 2026
8c911ba
Merge pull request #359 from IAnMove/cursor/bc-8e90b3ca-1116-4c99-b0b…
IAnMove Sep 11, 2026
3d6994f
Merge pull request #358 from IAnMove/cursor/critical-bug-management-3b39
IAnMove Sep 11, 2026
c3aae53
fix(productions): isolate review takes so persist cannot steal anothe…
cursoragent Sep 11, 2026
d7a0fae
ci: retrigger required checks after retarget to development
IAnMove Sep 11, 2026
790ad53
fix(scene3d): persist drafts on workspace switch and keep last-identity
cursoragent Sep 11, 2026
9c327c0
ci: retrigger required checks after retarget to development
IAnMove Sep 11, 2026
f994ad1
fix(scene3d): no clonar la primera pantalla al conservar objetos
cursoragent Sep 11, 2026
3cb1362
Merge pull request #373 from IAnMove/cursor/bc-16ddbcce-775c-4636-a2a…
IAnMove Sep 11, 2026
89baac6
Merge pull request #374 from IAnMove/cursor/bc-cbfc0cde-4b81-4fb2-ae3…
IAnMove Sep 11, 2026
f9e17b6
fix(scene3d): keep authored screens when wizard showcase has no document
cursoragent Sep 11, 2026
200b99a
merge(macos): sync origin/development before landing #353
IAnMove Sep 11, 2026
21c1df4
fix(macos): keep GenerateButton under the complexity ratchet
IAnMove Sep 11, 2026
f93c705
feat(wizard): server-side image to upscale workflow
IAnMove Sep 11, 2026
68dc49a
fix(wizard): record workflow executor readers and lint WorldSfx refs
IAnMove Sep 11, 2026
841d53f
fix(wizard): mount image-upscale executor on launch runtime
IAnMove Sep 11, 2026
c1c9cc6
fix(macos): restore GenerateButton types and outpaint copy scan
IAnMove Sep 11, 2026
f1cac26
Merge pull request #366 from IAnMove/grok/agente1-h03-server-workflow…
IAnMove Sep 11, 2026
ec39ad7
Merge pull request #379 from IAnMove/cursor/critical-bug-management-e0bd
IAnMove Sep 11, 2026
b62f51b
Merge pull request #380 from IAnMove/cursor/critical-bug-management-e1c9
IAnMove Sep 11, 2026
4f683cd
Merge remote-tracking branch 'origin/development' into development-ma…
IAnMove Sep 11, 2026
3e6d885
fix(wizard): keep image-upscale receipt when a sibling persist races …
cursoragent Sep 11, 2026
646f4db
feat(video): mobile 9:16 cameras and export quality
IAnMove Sep 11, 2026
919fa0b
feat(scene3d): recoverable World3D export without a browser tab
IAnMove Sep 11, 2026
ec19b4b
fix(scene3d): record World3D export readers and lint WorldSfx refs
IAnMove Sep 11, 2026
9382b6a
feat(scene3d): mount World3D export on the live API
IAnMove Sep 11, 2026
247d259
fix(scene3d): record World3D export routes after development rebase
IAnMove Sep 11, 2026
1b349b9
Merge pull request #353 from IAnMove/development-mac-integration
IAnMove Sep 11, 2026
305dff3
fix(macos): no pisar capturas ni exports del Video Editor en el perfi…
cursoragent Sep 11, 2026
44a03f5
fix(macos): admit Studio image commands on the core profile
cursoragent Sep 11, 2026
f0a7553
merge(scene3d): sync origin/development into World3D export
IAnMove Sep 11, 2026
71b962b
Merge pull request #382 from IAnMove/cursor/critical-bug-management-54a9
IAnMove Sep 11, 2026
d1aaa9b
Merge pull request #384 from IAnMove/grok/feat-mobile-cameras-and-exp…
IAnMove Sep 11, 2026
4f59e9c
feat(sceneFx): PSX, VHS and retro console looks
IAnMove Sep 11, 2026
8465f5b
Merge pull request #378 from IAnMove/cursor/bc-1c137f17-dbbf-451b-a74…
IAnMove Sep 11, 2026
92805a9
Merge pull request #381 from IAnMove/cursor/critical-bug-management-7a89
IAnMove Sep 11, 2026
b66d1ef
fix(macos): mount Wizard image-upscale executor on the core profile
IAnMove Sep 11, 2026
91dbc3e
Merge pull request #369 from IAnMove/grok/agente1-h12-world3d-export-…
IAnMove Sep 11, 2026
390a213
fix(scene3d): do not publish a silent World3D MP4 for voiced scenes
cursoragent Sep 11, 2026
886e580
Merge pull request #385 from IAnMove/feat/macos-wizard-executor-core
IAnMove Sep 11, 2026
eb45f4d
Merge pull request #387 from IAnMove/grok/feat-retro-console-looks
IAnMove Sep 11, 2026
daa1b8e
fix(macos): clasificar outputs del perfil core para la galería y los …
cursoragent Sep 11, 2026
348b1d9
Merge pull request #375 from IAnMove/cursor/bc-85c30083-bf6f-4ddc-bac…
IAnMove Sep 11, 2026
9ae2c3a
Merge pull request #383 from IAnMove/cursor/critical-bug-management-8b2a
IAnMove Sep 11, 2026
e06f72e
fix(macos): sync MiniMax job status into core Wizard get_task
cursoragent Sep 11, 2026
6dc71b4
Merge pull request #386 from IAnMove/cursor/critical-bug-management-4a3e
IAnMove Sep 11, 2026
0df561d
fix(macos): encode Studio image refs and redispatch MiniMax on replay
cursoragent Sep 11, 2026
4a23dd8
Merge pull request #388 from IAnMove/cursor/critical-bug-management-6dd9
IAnMove Sep 11, 2026
8eeae4c
merge(docs): sync origin/development into Studio Tools guide
IAnMove Sep 11, 2026
3ea21ab
Merge pull request #225 from IAnMove/cursor/engineering-documentation…
IAnMove Sep 11, 2026
a8e7fe3
fix(macos): mount recoverable World3D export on the core profile
IAnMove Sep 11, 2026
aed1788
Merge pull request #389 from IAnMove/feat/macos-world3d-export-core
IAnMove Sep 11, 2026
3538323
fix(macos): expose canonical Activity tasks on the core profile
IAnMove Sep 11, 2026
af353b4
Merge pull request #390 from IAnMove/feat/macos-core-canonical-tasks
IAnMove Sep 11, 2026
1cd5580
feat(scene3d): sixteen action cinema sets
IAnMove Sep 11, 2026
af1bc90
feat(scene3d): live shot thumbs, set filters and 16 Hollywood scenes
IAnMove Sep 11, 2026
aa6a97f
feat(scene3d): experimental CRT/skull face packs with expressions
IAnMove Sep 11, 2026
5f4d553
feat(scene3d): voxel, anime and cube-skull face packs plus video prev…
IAnMove Sep 11, 2026
35a3caa
fix(scene3d): drive face-pack preview clock so mouths actually move
IAnMove Sep 11, 2026
12a758d
feat(scene3d): hold expression while visemes change; document face-pa…
IAnMove Sep 11, 2026
2d689be
fix(scene3d): keep action cinema sets under tsc and the complexity ra…
IAnMove Sep 11, 2026
b6958e4
feat(cut-paper): Tijeral kit bible, puppet compiler and 78s pilot
IAnMove Sep 11, 2026
ae944ff
feat(cut-paper): cardboard, plaza and Nilo look test
IAnMove Sep 11, 2026
1d75e5c
fix(scene3d): use const for the action preview clock
IAnMove Sep 11, 2026
1e6da1b
fix(macos): mount Video3D scene packages on the core profile
IAnMove Sep 11, 2026
bd3a840
fix(scene3d): pick the viewport canvas, not shot-library thumbs
IAnMove Sep 11, 2026
e9c8de6
fix(scene3d): target the Three.js viewport canvas in editor E2E
IAnMove Sep 11, 2026
ec65d4f
Merge pull request #392 from IAnMove/feat/macos-scene-packages-core
IAnMove Sep 11, 2026
ee40d51
fix(scene3d): paint one shot-library thumb per frame
IAnMove Sep 11, 2026
91e8d8b
feat(cut-paper): Tijeral as a Story Lab chapter with Video 2D beats
IAnMove Sep 11, 2026
5da8de0
feat(scene3d): cube-front face kits with locked skin and 9×6 visemes
IAnMove Sep 11, 2026
ffac758
Merge pull request #391 from IAnMove/feat/cut-paper-series-kit-20260911
IAnMove Sep 11, 2026
46ccf08
Merge pull request #372 from IAnMove/feat/action-cinema-sets-20260911
IAnMove Sep 11, 2026
ac794fe
fix(scene3d): no tumbar las miniaturas si el face pack no encuentra p…
cursoragent Sep 11, 2026
2333eae
Merge pull request #377 from IAnMove/cursor/critical-bug-management-b12d
IAnMove Sep 11, 2026
90711cb
fix(macos): mount Series episode assembly on the core profile
IAnMove Sep 11, 2026
75216e2
Merge pull request #394 from IAnMove/feat/macos-series-assembly-core
IAnMove Sep 11, 2026
b23ab13
fix(cut-paper): keep Tijeral Video 2D beats inside their shot duration
cursoragent Sep 11, 2026
bf08f00
fix(macos): join Series clips with the concat filter, not demuxer copy
cursoragent Sep 11, 2026
a84c119
fix(macos): mount user diagnostics on the core profile
IAnMove Sep 11, 2026
4934a4b
Merge pull request #393 from IAnMove/cursor/critical-bug-management-9e30
IAnMove Sep 11, 2026
0a8d8d8
Merge pull request #395 from IAnMove/feat/macos-diagnostics-core
IAnMove Sep 11, 2026
81eae81
fix(ci): put core Series assembly tests in Python shard B
IAnMove Sep 11, 2026
c625d9e
Merge pull request #396 from IAnMove/cursor/critical-bug-management-5f20
IAnMove Sep 11, 2026
3776455
fix(macos): mount LLM prompt tools on the core profile
IAnMove Sep 11, 2026
db0783b
Merge pull request #397 from IAnMove/feat/macos-llm-prompt-core
IAnMove Sep 11, 2026
8baf2f5
fix(macos): mount MCP connection settings on the core profile
IAnMove Sep 11, 2026
2a0ed7c
Merge pull request #398 from IAnMove/feat/macos-mcp-access-core
IAnMove Sep 11, 2026
799bed7
fix(macos): exigir el token MCP del Settings en el endpoint core
cursoragent Sep 11, 2026
41e2341
feat(scene3d): example videos of cube-front mascots talking
IAnMove Sep 11, 2026
31abdd6
feat(scene3d): cube-front prompts and a stills-to-9×6 face pack maker
IAnMove Sep 11, 2026
63d4cf0
feat(characters): cube-front lipsync face pack lives in Character Cre…
IAnMove Sep 11, 2026
85e9310
fix(cut-paper): transparent Tijeral puppets and paper visemes
IAnMove Sep 11, 2026
12bb69b
docs(face-pack): dedicate bundled face examples to CC0
IAnMove Sep 11, 2026
ceaa46d
Merge pull request #399 from IAnMove/cursor/bc-e6425ad0-6909-4aa3-8f7…
IAnMove Sep 12, 2026
e91cd9a
Merge pull request #400 from IAnMove/fix/cut-paper-transparent-puppet…
IAnMove Sep 12, 2026
48fdd35
fix(scene3d): fill 9×6 face pack tiles so tsc accepts the maps
IAnMove Sep 12, 2026
991c191
Merge pull request #401 from IAnMove/feat/face-pack-examples-20260911
IAnMove Sep 12, 2026
3800005
fix(characters): Story Lab can link 2D kits and read their TTS
IAnMove Sep 12, 2026
9c43221
test(series): match MiniMax H3 disclaimer regardless of sentence case
IAnMove Sep 12, 2026
69fe2db
fix(characters): do not treat 2D kit refs as Video 3D speakers
IAnMove Sep 12, 2026
1427daa
feat(cut-paper): Tijeral kits, Qwen presets and MiniMax identity stills
IAnMove Sep 12, 2026
4ae84ba
fix(cut-paper): type Tijeral kit stubs without undefined anchors
IAnMove Sep 12, 2026
18a444f
Merge pull request #402 from IAnMove/feat/character-sheet-contract-20…
IAnMove Sep 12, 2026
12874fb
feat(cut-paper): replace Tijeral stand-in voices with Qwen CustomVoice
IAnMove Sep 12, 2026
5f68eb1
Merge pull request #403 from IAnMove/feat/tijeral-qwen-voices-20260912
IAnMove Sep 12, 2026
93c9982
Fix audited workflow, generation and World3D integrations
IAnMove Sep 12, 2026
1e9eade
Fix review test heap exhaustion and synchronize saved take decisions
IAnMove Sep 12, 2026
272ee26
Fix review persist dropping approve after notes blur
cursoragent Sep 12, 2026
5b55e55
Register the mounted review test in the architecture inventory
IAnMove Sep 12, 2026
f7f74a6
Fix review persist dropping sidecar-recovered takes
cursoragent Sep 12, 2026
78f093f
fix(cut-paper): time Tijeral mouths to Hocus audio analysis
IAnMove Sep 12, 2026
60e867a
Merge pull request #404 from IAnMove/fix/integration-audit-20260912
IAnMove Sep 12, 2026
3a7dfa6
fix(cut-paper): readable ES/EN visemes and English Qwen lines
IAnMove Sep 12, 2026
5e43a48
fix(cut-paper): keep aligned mouths closed until the first word
cursoragent Sep 12, 2026
95e3d0d
Merge remote-tracking branch 'origin/development' into codex/review-p…
IAnMove Sep 12, 2026
708f63d
Merge remote-tracking branch 'origin/development' into codex/review-p…
IAnMove Sep 12, 2026
1f71241
Merge remote-tracking branch 'origin/development' into codex/review-p…
IAnMove Sep 12, 2026
3bdea65
test(review): verify recovered takes preserve identity and isolation
IAnMove Sep 12, 2026
acf3c51
Fix review/rejoin treating a selected stale take as current
cursoragent Sep 12, 2026
b430cca
fix(review): preserve native approval clicks and confirmed state
IAnMove Sep 12, 2026
e72c493
fix(cut-paper): bound aligned speech and preserve speaker turn starts
IAnMove Sep 12, 2026
35806db
Merge remote-tracking branch 'origin/cursor/critical-bug-management-s…
IAnMove Sep 12, 2026
4048ebd
Fix H3 rejoin assembling stale clips after an image rerun
cursoragent Sep 12, 2026
1e9886f
Merge remote-tracking branch 'origin/cursor/critical-bug-management-h…
IAnMove Sep 12, 2026
b8e3019
test(review): cover stale H3 segments and explicit take selections
IAnMove Sep 12, 2026
e390195
fix(review): keep comparison choice across authoritative refreshes
IAnMove Sep 12, 2026
be5a731
Merge pull request #405 from IAnMove/cursor/critical-bug-management-7363
IAnMove Sep 12, 2026
4d278cb
Merge pull request #406 from IAnMove/cursor/critical-bug-management-48e0
IAnMove Sep 12, 2026
5da575a
Merge pull request #407 from IAnMove/fix/tijeral-hocus-lipsync-20260912
IAnMove Sep 12, 2026
bb11d1c
fix(review): keep notes when restating a stale approval
cursoragent Sep 12, 2026
12741af
fix(studio): connect Wizard intent and reusable Series production setup
IAnMove Sep 13, 2026
603623b
fix(series): prepare shot references and configure characters in Creator
IAnMove Sep 13, 2026
6710bbf
fix(series): guide draft rendering and pending production approvals
IAnMove Sep 13, 2026
02d094a
feat(series): generate editable 2D drafts with character cutouts and …
IAnMove Sep 13, 2026
606c4e9
fix(series): apply saved mouth rigs and expose usable mouth workshop
IAnMove Sep 13, 2026
e18a8fa
fix(characters): save complete Series setup and preview included speech
IAnMove Sep 13, 2026
4ed85d0
fix(series): scope lip sync updates and allow offscreen dialogue
IAnMove Sep 13, 2026
0caf1e4
fix(series): simplify draft regeneration and preserve approved originals
IAnMove Sep 13, 2026
1b3631e
feat(characters): resting faces, phonetic lip sync and twenty mouth s…
IAnMove Sep 13, 2026
734f53d
test(characters): accept expanded mouth-state guidance
IAnMove Sep 13, 2026
b36317d
Merge pull request #411 from IAnMove/cursor/critical-bug-management-d13c
IAnMove Sep 14, 2026
0a86773
Merge pull request #413 from IAnMove/fix/series-wizard-production-202…
IAnMove Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
174 changes: 132 additions & 42 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
guard:
name: Clean-repo guard + Python checks
runs-on: ubuntu-24.04
timeout-minutes: 20
timeout-minutes: 10
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
Expand All @@ -48,47 +48,112 @@ jobs:
# compileall only compiles (never imports), so it needs no deps and
# skips heavy vendored model code. Covers the surface we edit.
run: python -m compileall -q app/services app/launch.py scripts

python-tests-a:
name: Python tests A
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"
cache: pip
cache-dependency-path: |
scripts/ci-python-requirements.txt
scripts/ci-python-torch-cpu.txt
app/requirements.txt
app/runtime/locks/*.txt
- name: Install lightweight test dependencies
run: >-
python -m pip install
"starlette==0.46.1"
"soundfile==0.13.1"
"numpy==2.2.6"
"opencv-python-headless==4.12.0.88"
"Pillow==11.3.0"
"requests==2.32.4"
"accelerate==1.12.0"
"av==16.1.0"
"diffusers==0.36.0"
"decord==0.6.0"
"einops==0.8.2"
"fastapi==0.115.12"
"ffmpeg-python==0.2.0"
"imageio==2.37.2"
"imageio-ffmpeg==0.6.0"
"json_repair==0.59.5"
"mmgp==3.7.6"
"onnxruntime==1.23.2"
"pydantic==2.10.6"
"psutil==7.2.2"
"pytest==8.3.5"
"rembg==2.0.65"
"tqdm==4.67.3"
"transformers==4.57.1"
"websocket-client==1.9.0"
run: python -m pip install -r scripts/ci-python-requirements.txt
- name: Install CPU tensor test runtime
run: >-
python -m pip install
"torch==2.7.0+cpu"
"torchaudio==2.7.0+cpu"
"torchvision==0.22.0+cpu"
--extra-index-url https://download.pytorch.org/whl/cpu
run: python -m pip install -r scripts/ci-python-torch-cpu.txt
- name: Cache apt archives
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/hocus-apt-archives
key: ${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
${{ runner.os }}-${{ runner.arch }}-apt-ffmpeg-
- name: Install ffmpeg for media tests
run: sudo apt-get update && sudo apt-get install -y ffmpeg
- name: Pytest collection
run: python -m pytest --collect-only -q
- name: Python test suite
run: python -m pytest -q
run: |
set -euo pipefail
cache_dir="${HOME}/.cache/hocus-apt-archives"
mkdir -p "${cache_dir}"
sudo mkdir -p /var/cache/apt/archives/partial
if ls "${cache_dir}"/*.deb >/dev/null 2>&1; then
sudo cp "${cache_dir}"/*.deb /var/cache/apt/archives/ || true
fi
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
cp /var/cache/apt/archives/*.deb "${cache_dir}/" 2>/dev/null || true
- name: Python test suite (shard A)
run: |
set -euo pipefail
python scripts/select_local_tests.py --group python-a > "${RUNNER_TEMP}/shard-a.txt"
test -s "${RUNNER_TEMP}/shard-a.txt"
python -m pytest -q --junitxml=pytest-shard-a.xml $(cat "${RUNNER_TEMP}/shard-a.txt")
- name: Upload shard A report
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: pytest-shard-a
path: pytest-shard-a.xml
if-no-files-found: ignore

python-tests-b:
name: Python tests B
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"
cache: pip
cache-dependency-path: |
scripts/ci-python-requirements.txt
scripts/ci-python-torch-cpu.txt
app/requirements.txt
app/runtime/locks/*.txt
- name: Install lightweight test dependencies
run: python -m pip install -r scripts/ci-python-requirements.txt
- name: Install CPU tensor test runtime
run: python -m pip install -r scripts/ci-python-torch-cpu.txt
- name: Cache apt archives
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/hocus-apt-archives
key: ${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
${{ runner.os }}-${{ runner.arch }}-apt-ffmpeg-
- name: Install ffmpeg for media tests
run: |
set -euo pipefail
cache_dir="${HOME}/.cache/hocus-apt-archives"
mkdir -p "${cache_dir}"
sudo mkdir -p /var/cache/apt/archives/partial
if ls "${cache_dir}"/*.deb >/dev/null 2>&1; then
sudo cp "${cache_dir}"/*.deb /var/cache/apt/archives/ || true
fi
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
cp /var/cache/apt/archives/*.deb "${cache_dir}/" 2>/dev/null || true
- name: Python test suite (shard B)
run: |
set -euo pipefail
python scripts/select_local_tests.py --group python-b > "${RUNNER_TEMP}/shard-b.txt"
test -s "${RUNNER_TEMP}/shard-b.txt"
python -m pytest -q --junitxml=pytest-shard-b.xml $(cat "${RUNNER_TEMP}/shard-b.txt")
- name: Upload shard B report
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: pytest-shard-b
path: pytest-shard-b.xml
if-no-files-found: ignore

ui-check:
name: UI tests + lint + type-check + build
Expand Down Expand Up @@ -167,8 +232,26 @@ jobs:
- name: Install Chrome for native H.264 and AAC speech export checks
working-directory: ui
run: npx playwright install chrome
- name: Cache apt archives
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/hocus-apt-archives
key: ${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-ubuntu-24.04-ffmpeg
${{ runner.os }}-${{ runner.arch }}-apt-ffmpeg-
- name: Install FFmpeg for Linux scene audio finalization
run: sudo apt-get update && sudo apt-get install -y ffmpeg
run: |
set -euo pipefail
cache_dir="${HOME}/.cache/hocus-apt-archives"
mkdir -p "${cache_dir}"
sudo mkdir -p /var/cache/apt/archives/partial
if ls "${cache_dir}"/*.deb >/dev/null 2>&1; then
sudo cp "${cache_dir}"/*.deb /var/cache/apt/archives/ || true
fi
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
cp /var/cache/apt/archives/*.deb "${cache_dir}/" 2>/dev/null || true
- name: UI E2E
working-directory: ui
run: npm run test:e2e
Expand All @@ -195,9 +278,14 @@ jobs:
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"
cache: pip
cache-dependency-path: |
scripts/ci-python-windows-requirements.txt
app/requirements.txt
app/runtime/locks/*.txt
- name: Runtime isolation and native Windows launcher shell checks
run: |
python -m pip install "pytest==8.3.5" "setuptools==80.9.0"
python -m pip install -r scripts/ci-python-windows-requirements.txt
python -m pytest tests/test_runtime_profiles.py tests/test_launcher_compatibility.py tests/test_ui_distribution.py -q
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
Expand Down Expand Up @@ -256,7 +344,7 @@ jobs:
ci-required:
name: CI required
if: always()
needs: [guard, ui-check, ui-e2e, ui-speech-windows]
needs: [guard, python-tests-a, python-tests-b, ui-check, ui-e2e, ui-speech-windows]
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
Expand All @@ -265,6 +353,8 @@ jobs:
run: |
python3 scripts/ci_required.py \
"Clean-repo guard + Python checks=${{ needs.guard.result }}" \
"Python tests A=${{ needs.python-tests-a.result }}" \
"Python tests B=${{ needs.python-tests-b.result }}" \
"UI tests + lint + type-check + build=${{ needs.ui-check.result }}" \
"UI E2E boot (Chromium + simulated API)=${{ needs.ui-e2e.result }}" \
"Speech E2E Windows (real H.264 + AAC)=${{ needs.ui-speech-windows.result }}"
48 changes: 48 additions & 0 deletions H07_HANDOFF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# H07 handoff — reuse vocal analysis across shots

Branch `grok/agente1-h07-speech-analysis-cache-20260911` from `origin/development`.
Draft PR toward `development`. Do not merge.

## What shipped

- Persistent atomic cache (`app/services/speech_analysis_cache.py`) keyed by
audio SHA-256, BS-RoFormer/Rhubarb identity, isolation/analysis parameters
and the 90 s payload window. Same segment, three shots → one isolation and
one Rhubarb run. Different windows stay different keys; they are never
concatenated.
- `isolate_voice` / `analyze_voice` coalesce in-flight work. A failed worker
does not publish a `.wav`/`.json` entry. Pins skip eviction while another
consumer still needs the result.
- UI `decodeVoice` keeps a bounded (8) decoder cache. Simultaneous requests
share one fetch; aborting one caller does not abort or drop the shared
decode. `mixSceneSpeech` still mixes the original soundtrack URL.

CueTimeline was not edited (H06). 90 s analysis cap unchanged.

## Mock vs real isolation

| Circuit | Result |
| --- | --- |
| Isolation worker mocked (`subprocess.run` copies WAV, CPU/offline env still asserted) | **simulated PASS** — three shots, one worker |
| Rhubarb mocked (writes `mouthCues`) + isolation mock | **simulated PASS** — cue times identical, isolation once |
| Missing optional BS-RoFormer files | **simulated PASS** — `reason=optional_model_missing`, no download |
| Failure / `os.replace` error | **simulated PASS** — no partial cache file |
| Concurrent waiters; one abandoned | **simulated PASS** — shared result kept |
| UI decode cache + mix soundtrack | **simulated PASS** — original URL only |
| Installed BS-RoFormer `app/ckpts/roformer/*.ckpt,*.yaml` + `audio_separator` | **PENDING real** — tests never start a download |
| Real Rhubarb binary | **PENDING real** — not required for this PR |

Do not download vocal-isolation models to “complete” this lane. The worker
stays installed-only, CPU, `HF_HUB_OFFLINE=1`.

## How to try it

```bash
PYTHONPATH=app /home/ina/pinokio/api/Maestro-next.git/app/env/bin/python -m pytest \
tests/test_speech_analysis_cache.py tests/test_vocal_isolation.py tests/test_scene3d_speech.py -q
cd ui && npx tsx --tsconfig tsconfig.app.json --import ./tests/setupI18n.ts \
--test tests/scene3dSpeechAudioCache.test.ts
```

Cache dir: `SPEECH_ANALYSIS_CACHE_DIR` or `cache/speech-analysis/` (gitignored).
Limits: `SPEECH_ANALYSIS_CACHE_MAX_BYTES` (128 MiB), `SPEECH_ANALYSIS_CACHE_MAX_ENTRIES` (64).
60 changes: 60 additions & 0 deletions H17_HANDOFF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# H17 handoff — Wizard/MCP corpus

Branch `grok/agente1-h17-wizard-corpus-20260911` from `origin/development` `780d3915`.
Draft PR toward `development`. Do not merge.

## What shipped

- EN/ES corpus fixture `tests/fixtures/wizard_mcp_corpus.json` (intents, negations,
ambiguous refs, workspace change, retry, compound, unpublished, errors).
- Contract tests: `tests/test_wizard_mcp_corpus.py`, `ui/tests/wizardMcpCorpus.test.ts`.
- Simulated E2E: `ui/e2e/specs/wizard-mcp-corpus.spec.ts` (Playwright harness, no Pinokio restart).
- Guide: `docs/development/WIZARD_MCP_USAGE.md` (usable without reading the code).
- Local evidence (gitignored): `outputs/wizard-mcp-corpus-20260911/`.

No product runtime files were changed. No foreign lanes edited.

## Mock vs real

| Circuit | Result |
| --- | --- |
| FakeNative HTTP + MCP (image/speech/music/sfx/upscale) | **simulated PASS** — admission, replay, two clients, same id |
| Wizard parse/reconcile/format (EN/ES corpus) | **simulated PASS** |
| Playwright simulated API | implemented; run in CI / locally with the UI preview |
| Live `GET /api/v1/generation/commands` on already-running API `:42005` | **read-only real** if that process is up |
| Live MCP `tools/list` | not executed (Bearer token not taken from the shared runtime) |
| Real generation with installed models | **PENDING** |

Installed on the shared machine (not used): `flux2_klein_4b`, `kugelaudio_0_open`,
`ace_step_v1_5_xl_sft_lm_4b`, others. H17 does **not** enqueue GPU work on the
cinematic/shared Pinokio runtime.

## Matrix

See the fixture `matrix` array and `docs/development/WIZARD_MCP_USAGE.md`.
Short form: designed/implemented/simulated for published ops; `generation.video`
designed but **not implemented** (H01); real generate pending.

## Failures found (not silently fixed)

1. **H01** `generation.video` is unpublished on this base. Repro: catalog omits it;
MCP `tools/call` name `generation.video` is `isError` and creates zero tasks.
2. **H09** prior Video Editor 589/590 frame finding is recorded, not retested.
3. **agentActions** “Open Studio, prepare a Flux image … and generate it.”
fills the form and does **not** start. Repro `compound-prepare-and-generate-it`.
4. **wizardTurnReport** how-to with an empty action list keeps model prose
(invented “I generated invented.png.”). No task is created. Repro in the
corpus fixture `howto-empty-turn-keeps-model-prose`. Not patched here
(`wizardTurnReport.ts` is read-only for this lane).

## How to try it

```bash
PYTHONPATH=app /home/ina/pinokio/api/Maestro-next.git/app/env/bin/python -m pytest tests/test_wizard_mcp_corpus.py -q
cd ui && npx tsx --tsconfig tsconfig.app.json --import ./tests/setupI18n.ts --test tests/wizardMcpCorpus.test.ts
# optional: npx playwright test -c e2e/playwright.config.ts e2e/specs/wizard-mcp-corpus.spec.ts
```

As a user: read `docs/development/WIZARD_MCP_USAGE.md`. Refusal must create no
task; an unpublished tool must not promise success; a timeout replay must keep
the same job id on both clients.
30 changes: 30 additions & 0 deletions INTEGRATION.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
H14 integration notes (do not rewrite ActivityFooter / useStore / applicationAdapters).

1) i18n resources one-liner (ui/tests/i18nFoundation.test.tsx freezes NAMESPACES;
this PR keeps catalogs in ui/src/i18n/locales/{en,es}/generationInspector.json
and loads them from features/generation-inspector/copy.ts):

import generationInspectorEn from './locales/en/generationInspector.json'
import generationInspectorEs from './locales/es/generationInspector.json'
// NAMESPACES += 'generationInspector'
// resources.en.generationInspector = generationInspectorEn
// resources.es.generationInspector = generationInspectorEs

2) H02 execution detail hook (ui/src/features/activity/executionDetail.tsx GroupActions),
without rewriting ActivityFooter:

import { inspectFromActivity } from '../generation-inspector'
<button
type="button"
onClick={() => inspectFromActivity(workspace, {
generation_id: inspected?.id,
output_folder: workspace,
prompt_original: /* stored original only */,
prompt_effective: /* stored effective only */,
})}
>

Pass the workspace/output folder of the task. Do not copy another folder's
record into this source. Missing original/effective must stay omitted.

3) App mount: done in this PR (GenerationInspectorHost in ui/src/App.tsx).
Loading
Loading