Added the Scene Manager (Libreflow casting, load, update, assetize)

New Scene Manager panel (WTD tab) talking to a running Libreflow through
its IPC server and the wtdcmds commands: pick the shot context, read the
casting, link the latest available publishes (overrides for chars and
props, collection instances otherwise), flag out-of-date versions in red,
update / roll back / remove loaded assets, and publish local collections
as assets. Requests run in the background. Settings in config.py
(SCENE_MANAGER_*, LIBREFLOW_*).

The Shot Viewer groups rigs loaded by the Scene Manager by asset type.
The manifest declares the network permission.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Nero Frame 13andClaude Opus 5.5 committed 2026-10-27 11:15:02 +01:00
1 parent 10fe71e79e
commit c238f4db7c
10 files changed
+1630 -11

No files matched your search

+7 -1
View File
@@ -8,7 +8,7 @@ for _name in [name for name in sys.modules if name.startswith(__name__ + ".")]:
import bpy # noqa: E402
from bpy.app.handlers import persistent # noqa: E402
from . import checks, core, rename, shot_viewer, tools_ops, ui # noqa: E402
from . import checks, core, rename, scene_manager, shot_viewer, tools_ops, ui # noqa: E402
from .core import runner # noqa: E402
api = core
@@ -49,6 +49,9 @@ def register() -> None:
# Register the shot viewer (settings and operators, before its panel)
shot_viewer.register()
# Register the scene manager (settings and operators, before its panels)
scene_manager.register()
# Load all the sanity checks into the sanity REGISTRY
checks.load_all()
@@ -80,6 +83,9 @@ def unregister() -> None:
# Unregister the shot viewer (after its panel)
shot_viewer.unregister()
# Unregister the scene manager (after its panels)
scene_manager.unregister()
runner.clear()
# The check registry is plain Python and is rebuilt with the modules on
# re-import, so it is kept as is (enable/disable without re-import).