Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 25 additions & 6 deletions guidebot_recorder/recorder/render/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,21 @@
timeline.py observed freezes → validated model → the edited file
audio.py audio beds, muxing, and the two-phase artifact publish
reuse.py the compiled-sidecar contract as render reads it
_step.py _render_step (opaque; phase 3 decomposes it)
_run.py run_render (opaque; phase 3 decomposes it — still >600 lines,
which is expected and is *not* a sign the cleanup is done)

Phase 3 added the four that carry ``run_render``'s three lifetimes, plus the two
that spend them::

plan.py _RenderPlan — everything decided before a browser exists
stage.py _Stage — what is on screen now, and the ONE order the
role-gated init scripts may be registered in
clock.py _Clock — the recording axis, and why ``on_sfx`` is a bound
method rather than a value
loop.py replaying one flat step; the absence probe is a seam, not a
comment
post.py recording -> composed -> virtual -> mastered, in that order
and no other
_step.py _render_step — two dispatches on two different keys
_run.py run_render — nothing but the order the phases run in

It also, on purpose, **withholds every name the tests patch**. Nineteen names plus
``os.replace`` are this package's test seams, and five of them
Expand Down Expand Up @@ -56,9 +68,11 @@

Ten of the nineteen are the second kind, which is why this package's guard cannot
be the one ``video.mux`` uses. Two names have consumers in two submodules at once —
``Recorder`` (``visuals`` and ``_run``) and ``probe_frame_count`` (``timeline`` and
``_run``) — and each needs **two** patch lines; one line silently stops covering
the other path. ``tests/unit/recorder/test_render_seams.py`` enforces all of it.
``Recorder`` (``visuals`` and ``loop``) and ``probe_frame_count`` (``timeline`` and
``post``) — and each needs **two** patch lines; one line silently stops covering
the other path. ``_run`` itself holds **no** seam any more: every one of them moved
to the submodule that constructs or calls it.
``tests/unit/recorder/test_render_seams.py`` enforces all of it.

The submodules are re-exported as *modules* for exactly that reason, using the
redundant-alias form. The private helpers below (``_PopupSession``,
Expand All @@ -76,14 +90,19 @@
from . import _run as _run
from . import _step as _step
from . import audio as audio
from . import clock as clock
from . import constants as constants
from . import errors as errors
from . import loop as loop
from . import narration as narration
from . import pages as pages
from . import plan as plan
from . import popup_crop as popup_crop
from . import popup_detect as popup_detect
from . import popup_session as popup_session
from . import post as post
from . import reuse as reuse
from . import stage as stage
from . import tasks as tasks
from . import timeline as timeline
from . import visuals as visuals
Expand Down
962 changes: 53 additions & 909 deletions guidebot_recorder/recorder/render/_run.py

Large diffs are not rendered by default.

Loading
Loading