port: branches announce themselves -- their lesson, applied where it already bit me
Their salvaged iteration produced the rule I most needed: have each branch announce itself in the log, so a run that took the wrong path says so before its numbers are read. Assertions catch the edit; log lines catch the execution. Two of my own failures were of exactly this shape. --no-hold under --time produced byte-identical renders because --time sets frozen and pose_at tests 'holding and not frozen' -- a request silently overridden reads exactly like one that worked. And I enumerated three free-running clocks, wired two, and a run pinning two of three looked identical to one pinning all three. Both now announce. --no-hold prints INERT with the reason when --time is present, and the pose line carries the effective configuration of all three clocks: 'pose = timeline [frozen, loop-phase=free, leaf=free]' against '[running, loop-phase=0.0, leaf=free]'. The second prevents precisely the failure I shipped -- pinning a subset and reading the result as pinned. Verified the harnesses are unaffected: nothing under tools/port/ parses that line. Also accepts their scope correction: a claim about code needs its ref attached, the same way a number needs what it is a number of. With main 145 behind and both of us on topic branches, 'the code contains X' is underspecified by default, which is how we were both correct about SYLPHEED_KF_TIME_SHIFT simultaneously. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -266,6 +266,16 @@ func _ready() -> void:
|
||||
# rendered nothing.
|
||||
if args.has("no-hold"):
|
||||
view.holding = false
|
||||
# 🔴 THE BRANCH ANNOUNCES ITSELF, because a request that is silently
|
||||
# overridden reads exactly like one that worked. `--time` sets `frozen`,
|
||||
# and `pose_at` tests `holding and not frozen`, so an explicit instant
|
||||
# makes this inert -- measured: identical renders with `--time`, max 253
|
||||
# different without it. I documented that combination as an EXAMPLE
|
||||
# before testing it, and only running it caught the no-op.
|
||||
if args.has("time"):
|
||||
print(" --no-hold: INERT -- --time sets `frozen`, which overrides holding")
|
||||
else:
|
||||
print(" --no-hold: playing past the rest, not clamping at each hold")
|
||||
viewport.add_child(view)
|
||||
|
||||
view.looping_focus = _looping_for(name)
|
||||
@@ -842,9 +852,18 @@ func _capture(path: String) -> void:
|
||||
await RenderingServer.frame_post_draw
|
||||
await RenderingServer.frame_post_draw
|
||||
var img := viewport.get_texture().get_image()
|
||||
print("t = %.2f units (%.3f s), pose = %s" % [
|
||||
# The EFFECTIVE configuration, not the requested one: every free-running
|
||||
# clock states whether it was pinned. Three of them exist (looping focus
|
||||
# record, spin, leaf) and a run that pinned two of three used to look
|
||||
# identical to one that pinned all three.
|
||||
var pins := PackedStringArray()
|
||||
pins.append("frozen" if view.frozen else "running")
|
||||
pins.append("loop-phase=%s" % ("free" if view.loop_phase_units < 0.0 else str(view.loop_phase_units)))
|
||||
pins.append("leaf=%s" % ("free" if view.leaf_time_units < 0.0 else str(view.leaf_time_units)))
|
||||
print("t = %.2f units (%.3f s), pose = %s [%s]" % [
|
||||
view.time_units, view.time_units / view.units_per_second,
|
||||
"rest" if view.pose_mode == ScreenView.Pose.REST else "timeline"])
|
||||
"rest" if view.pose_mode == ScreenView.Pose.REST else "timeline",
|
||||
", ".join(pins)])
|
||||
print("drew %d: %s" % [view.drawn.size(), ", ".join(view.drawn)])
|
||||
if not view.skipped.is_empty():
|
||||
print("not drawn %d: %s" % [view.skipped.size(), ", ".join(view.skipped)])
|
||||
|
||||
Reference in New Issue
Block a user