Keep groups, comments and silent music in view for the agent (#429)
A live test of the music areas built a pattern, a song and a composition that stayed silent: no instrument at first, and later notes outside the C4 to B4 range of a new Notes node. The agent got no hint of either. The same test showed that new nodes left groups behind, that a comment could end up under other nodes, and that an end node like Output stayed left of the devices put in front of it. - get_asset lists under silent what of a pattern, song or composition is not heard. That is a missing instrument, an instrument that sounds no note, or notes outside what its Notes nodes take in, in a song after the transpose. - soundingNotes moves from the pattern tab to src/core/instrument/compile.ts. The tab and the agent use the same rule. - When new nodes go between two that have no room, everything from the fed node on moves right together. This holds for Arrange with a selection too, so no link runs backwards. - A new node linked to a node in a group joins that group, and the group grows in the same undo step. A group that would take in a foreign node stays as it is. - Arrange takes groups and comments along: a group whose nodes all moved the same keeps its size, otherwise it is fitted anew. The rules live in the new src/editor/graph/annotationFollow.ts. - add_comment and fit_group put a comment below its nodes when a node or a group title is in the way above. lint_graph counts covered comments as coveredNotes. - add_notes, get_asset, lint_graph and the relay instructions name the default range and how to mend a covered comment. Tests: - graph-follow (new, 12), agent-edit, agent-music (11) and the other agent, graph, pattern and relay tests green - 10 deliberate breakages, each one red in its own test - e2e 71: 25/25 - Gate: CHECK EXIT 0, 324 files, 5002 tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
10f5e3ba8f
commit
19902a9f02
16 files changed
+923
-119
No files matched your search
+9
-6
@@ -39,12 +39,15 @@ const INSTRUCTIONS = [
|
||||
'one undo step, and a step can name what an earlier one made ("as": "x", then "$x"). Nodes for a',
|
||||
'graph come from catalog topic "nodes". A Variables node reads or writes a variable once add_port',
|
||||
'names it. A behavior acts on the object it is placed under: place it with parent set to that object.',
|
||||
'Give new nodes no x and y: the editor arranges them when the call ends, and leaves the nodes',
|
||||
'already there where they are. Keep a graph readable: a value needed far away comes from a second',
|
||||
'Get or Owner node next to its user, not over a long link. Check with lint_graph, the crossings',
|
||||
'too: when there are more than the links need, arrange_graph orders the whole graph for the',
|
||||
'fewest. Put nodes that belong together into a group with add_group, and say what they do with',
|
||||
'add_comment.',
|
||||
'Give new nodes no x and y: the editor arranges them when the call ends, next to what they link to',
|
||||
'and into its group; the nodes already there stay, or move right to make room. Keep a graph',
|
||||
'readable: a value needed far away comes from a second Get or Owner node next to its user, not',
|
||||
'over a long link. Check with lint_graph, the crossings too: when there are more than the links',
|
||||
'need, arrange_graph orders the whole graph for the fewest. Put nodes that belong together into a',
|
||||
'group with add_group, and say what they do with add_comment; a comment a node lies on',
|
||||
'(coveredNotes) goes back above its nodes with fit_group. Music plays nothing without an',
|
||||
'instrument, and an instrument sounds only the notes its Notes nodes take in, C4 to B4 in a new',
|
||||
'one: get_asset lists under silent what of a pattern, song or composition is not heard.',
|
||||
'The editor follows your edits: after run_commands the user sees the graph, scene or asset it worked',
|
||||
'on, with what it touched selected. Use open and select to show anything else.',
|
||||
'Test what you built yourself: play, then play_input sends keys and mouse clicks into the game,',
|
||||
|
||||
Reference in new issue
Block a user