fix: fade() no longer fades the whole score #1

Manually merged
rob merged 1 commit from fix/fade-target-mode into main 2026-09-09 15:05:41 +02:00
Collaborator

The DSL editor wrote the fade mode into target:, so every fade authored
there ran as fade(target:inout) — mode silently defaulting to "in" and
target pointing at an element id that does not exist. resolveFadeTarget
then fell back to window.svgElement, fading the entire score to a blank
page. mode: is now its own field and target: is an element id.

  • drop the whole-score/document.body fallback: an unresolvable target
    warns and skips instead
  • read a legacy target: as the mode it was meant to be, so scores
    already authored with the broken form keep working
  • clear fade priming when a cue is unregistered, and re-prime on live
    edits: _fadeCues never dropped entries, so a removed fade() kept
    re-hiding its element on every rewind

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

The DSL editor wrote the fade mode into target:, so every fade authored there ran as fade(target:inout) — mode silently defaulting to "in" and target pointing at an element id that does not exist. resolveFadeTarget then fell back to window.svgElement, fading the entire score to a blank page. mode: is now its own field and target: is an element id. - drop the whole-score/document.body fallback: an unresolvable target warns and skips instead - read a legacy target:<mode> as the mode it was meant to be, so scores already authored with the broken form keep working - clear fade priming when a cue is unregistered, and re-prime on live edits: _fadeCues never dropped entries, so a removed fade() kept re-hiding its element on every rewind Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The DSL editor wrote the fade mode into target:, so every fade authored
there ran as fade(target:inout) — mode silently defaulting to "in" and
target pointing at an element id that does not exist. resolveFadeTarget
then fell back to window.svgElement, fading the entire score to a blank
page. mode: is now its own field and target: is an element id.

- drop the whole-score/document.body fallback: an unresolvable target
  warns and skips instead
- read a legacy target:<mode> as the mode it was meant to be, so scores
  already authored with the broken form keep working
- clear fade priming when a cue is unregistered, and re-prime on live
  edits: _fadeCues never dropped entries, so a removed fade() kept
  re-hiding its element on every rewind

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
rob closed this pull request 2026-09-09 14:46:07 +02:00
rob reopened this pull request 2026-09-09 15:04:27 +02:00
rob manually merged commit 661a39ed76 into main 2026-09-09 15:05:41 +02:00
filip deleted branch fix/fade-target-mode 2026-09-09 15:24:58 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rob/oscilla!1
No description provided.