runtime: stop seeding plan/memory from the dataset (unused)

The current recipe trains neither plan nor memory, and no inference
step consumes them — ``_msgs_for_subtask`` renders the bare task and
``LowLevelForward`` conditions on the subtask. Bootstrapping
``current_plan`` / ``current_memory`` from the dataset's
``language_persistent`` annotations therefore only placed a stale,
do-nothing plan in the status panel.

Keep seeding ``current_subtask`` — it's a useful first-frame
fallback for ``LowLevelForward`` before ``HighLevelSubtaskFwd``
produces its first subtask.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-05-15 13:47:33 +02:00
parent b29cccb37e
commit 6e64c20cf1
@@ -1335,15 +1335,13 @@ def main(argv: list[str] | None = None) -> int:
runtime.state["text_gen_top_p"] = float(getattr(args, "text_top_p", 1.0) or 1.0)
if args.task:
runtime.set_task(args.task)
# Seed plan/memory/subtask so the first prompt the runtime builds
# mirrors what training rendered (task + active plan + active
# memory + optional current subtask). Without this the runtime
# starts empty, which only matched the very-early frames during
# training and is an out-of-distribution prompt for the rest.
if bootstrap_state.get("plan"):
runtime.state["current_plan"] = bootstrap_state["plan"]
if bootstrap_state.get("memory"):
runtime.state["current_memory"] = bootstrap_state["memory"]
# Seed the current subtask from the dataset so the first chunk —
# before ``HighLevelSubtaskFwd`` has run — has a real subtask to
# condition the action expert on instead of falling back to the
# bare task. Plan and memory are NOT seeded: the current recipe
# trains neither, no inference step consumes them, and seeding
# them only put a stale plan in the status panel that does
# nothing.
if bootstrap_state.get("subtask"):
runtime.state["current_subtask"] = bootstrap_state["subtask"]