A behavior variable switched private is hidden from the placed object
and from the Properties node, but the row dialog of an animation kept
offering it. Rows that exist already stay as they are, as decided in
the issue.
- offeredDefs in src/core/model/animation.ts is what the dialog offers
now: what the target can animate, less private variables and less
what another row animates already. The filter moved there from
RowDialog.ts, so it can be tested without the editor.
- animatableDefsOf is unchanged. The label and the runtime read it, so
a row on a variable that went private keeps playing and keeps its
label.
- Deviation from the proposal: under Change target the row's own
variable stays on offer, private or not. The dialog would open with
no property and a disabled button otherwise. Other private variables
are not offered there either.
- The command does not refuse a private variable. Only the dialog does
not offer it.
Finding, not fixed: e2e 56 fails when it runs alone, in 56a-ii from
#257 (typing "9" did not arrive: focus is BODY). With 55 before it the
module passes, so a full run does not show it. It was not measured on
HEAD without this change.
Tests:
- Gate: 198 files, 2883 tests (2882 + 1), exit 0
- e2e 55,56: 27 checks passed, 56 has +56e
- e2e 25: 31 checks passed, it uses the same dialog
- Three unit counter-probes each fail the new test
- The browser counter-probe fails 56e, mood shows up in the dialog
- e2e total 1610 is computed, not measured in a full run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>