Files
feuerwerk/tests/editor
adminandClaude Opus 5.5 b45bbcc976 Hold in tests that a graph edit reaches a running behavior (#216)
The issue said a behavior that runs in the editor keeps the graph
it started with, until it is switched off and on. Measured before
building anything, that is no longer so. An edit runs from the next
frame on. Since when, was not found out.

- No code changes. A command raises the project event, EditorRun
  refreshes, and syncFromModel of the behavior system empties the
  graph cache.
- Decided in the issue: the instance carries on and is not started
  over. Its variables and timers stand, and On start does not fire
  again. A restart would write what On start writes or spawns into
  the saved scene with every edit.
- Starting over stays what it was: Run in editor off and on, or
  Play.
- Module 43 of the e2e no longer switches the behavior off and on
  before it measures the changed layers of a ray cast.

Tests:
- Gate on melektaus-atx for this change alone: 212 files, 3264
  tests (3260 + 4), exit 0. The gate right before this commit ran
  on the tree of this and the next commit together: 213 files,
  3278 tests, exit 0.
- e2e 18,20,43 on melektaus-atx: 57 checks, all pass. The check in
  43 is the old one, it now holds without the workaround.
- Four unit tests in editor-run.test.ts: a changed node setting, a
  node wired in and one cut off, a flow hung on On start that does
  not fire until the switch goes off and on, and an undo.
- One counter-probe: without the emptied cache the wiring test
  fails. The setting test does not, settings change in place.
- No full run and no smokes. The sum of e2e checks stays 1676.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:59:19 +02:00
..
Plugins belong to the project, and they load before it: the project file gained the field plugins: ["demo-plugin.js"] (default empty, no formatVersion bump), the Plugins tab's switch writes into it as an ordinary undo step (SetPluginActiveCommand) instead of into a server-wide plugins.json, and the start order is turned around - startPlugins only fetches the list of files, then editor.boot() runs and ProjectStore.load(id, prepare) hands the raw JSON through before it is deserialized, where pluginsOf(raw) reads the list and PluginManager.syncTo() activates exactly those; that is the point of the issue, because what a plugin registers has to stand there before normalizeGraph would throw it away as unknown (#126, #127), a project switch first stops what the new project does not name and then starts what it does, a file the server does not have is passed over silently, and after signing out the manager is dead so a late event cannot start anything in a torn-down session; on the server plugins.json, PluginStore::setActive, isActive, the route PUT ?r=plugins/{file} and the 403 for inactive modules are gone and GET ?r=plugins only answers {file,bytes,updatedAt}, which makes every plugin file fetchable - the consequence accepted in #117, written down in the wiki for #115 and #116; publishPlugins(root) only copies files now, the seeder switches the demo plugin on in the fixture project, and the Plugins tab carries a puzzle piece as its icon while only a plugin's own tab still goes without one (the knob and the socket are cubic curves, not arcs, which Pixi's parser draws as a spike after an L); 3 new e2e checks in module 38 and 5 new unit tests cover the project as the owner of the switch, its undo, the order, pluginsOf against crude input and an unknown file name (#119)
2026-09-20 14:24:27 +02:00