A behavior built as a plain behavior, with On start and no Behavior
start, did nothing when another behavior called it through Run
behavior. The node only showed a warning. Such a behavior should run
as a call too, without the author having to rebuild its entry.
- New callEntries() in nested.ts returns the Behavior start node or,
when there is none, every On start node. callProblem uses it too.
- GraphInterpreter.call() follows all entries one after the other,
in graph order, in the same frame and with the same variables.
- Behavior end still returns what reaches it. A call through On start
has no inputs, because only the start node declares them.
- It is a fallback only. With a Behavior start present, On start
nodes stay out of the call.
- The node warning now reads "No start or On start node - does
nothing" and only shows when neither exists.
- Keep and local state machines behave as before.
Tests:
- ./check.sh: 163 files, 2396 tests, CHECK EXIT 0 (before 2392).
- 4 new unit tests in tests/core/nested-behavior.test.ts: the flow
after On start runs, the return value arrives, several On start
nodes run in graph order, a start node keeps On start out.
- e2e 19: ALL PASSED, 35 checks. Only the expected warning text
changed, the check sum stays at 1385.
- Counter-checks: without the fallback 3 tests fail. With only the
first On start exactly the order test fails.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>