feat(editor): Settings > Appearance gets "Show timeline on hover"
Off by default. On, the timeline sits as a strip — its header, so the title, transport and Composer stay reachable — and opens to full height while the pointer is on it or something inside it has focus. It also opens for the whole of a DRAG. During one the pointer is in drag mode and a strip that stays shut is a drop target you cannot hit, so dragenter holds it open and drop/dragend closes it. The tracker counts depth rather than holding a boolean: dragleave for the element being left fires AFTER dragenter for the one being entered, so a flag closes the strip mid-drag as the pointer crosses from one clip to the next. The strip height is MEASURED from the header rather than fixed: .zone-head wraps when the zone is narrow (34px min-height, 138px on a normal window), so any constant clips the very controls the strip exists to keep visible. It is re-measured on resize. flex: 0 0 auto matters — .zone is a shrinkable column child, and a height with min-height: 0 let the workspace squeeze the strip to 1px. The body collapses rather than being display:none so the lanes are not torn down and rebuilt on every open. A browser preference like the colour scheme, not a project one, and registered in the same Settings section for that reason. Also in this commit: - vf: train wherever there is a GPU, not only when the sample sits on one. The x0 value function's snapshot loads with map_location="cpu", so keying on the sample left it training on the CPU — the run that named it measured "x0 vf: train 10.1s" against 46ms for the same net locally. - The stage line counted nested sub-stages twice and reported 153% of a run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a689aaa87d
commit
8cdee7072f
+10
-1
@@ -139,10 +139,19 @@ class OnlineValueFunction(nn.Module):
|
||||
|
||||
@staticmethod
|
||||
def _training_device(conditioning, home):
|
||||
"""Where to run the twenty training steps: the sample's GPU if it is on one."""
|
||||
"""Where to run the twenty training steps: a GPU if there is one at all.
|
||||
|
||||
Not "the sample's device". The x0 value function's sample is a snapshot loaded with
|
||||
map_location="cpu", so keying on the sample left it training on the CPU — measured at
|
||||
10.1s a run against 46ms for the same net locally. What has to move is the ensemble
|
||||
and one stacked batch out of the buffer, and both are small; where the sample happens
|
||||
to have been read from says nothing about where the arithmetic belongs.
|
||||
"""
|
||||
try:
|
||||
if isinstance(conditioning, torch.Tensor) and conditioning.is_cuda:
|
||||
return conditioning.device
|
||||
if torch.cuda.is_available():
|
||||
return torch.device("cuda")
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
return home
|
||||
|
||||
Reference in New Issue
Block a user