annotate: remove action-record subtask-text replacement entirely

Drops the replace_subtask_text option and the
_render_action_record_to_subtask_text renderer. Action records are now
strictly additive: when action_records.enabled=True the module emits
style='action_record' rows (the typed {verb,object,arm,grasp,dest,
mistake} schema) and NEVER rewrites the subtask text the policy
conditions on.

The render-back-to-text path was the source of corrupted subtasks
(navigation tasks produced 'move stove to stove', manipulation tasks
got spurious 'with left arm using pinch grip' suffixes). Reconstructing
natural-language subtasks from hallucinated structured fields is
inherently fragile, so the capability is removed rather than guarded.

Removed:
  * ActionRecordsConfig.replace_subtask_text field
  * PlanSubtasksMemoryModule._render_action_record_to_subtask_text
  * the span['text'] = canonical_text overwrite in run_episode

Updated docstrings + run_hf_job.py comment accordingly. emit_record_row
(default True) is now the feature's only output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-06-02 14:42:36 +02:00
parent c5042a6850
commit 7454b4c993
3 changed files with 27 additions and 97 deletions
+4 -4
View File
@@ -71,10 +71,10 @@ CMD = (
"--plan.n_task_rephrasings=0 "
# action_records OFF: the structured {verb,object,arm,grasp,dest}
# schema is a manipulation schema; RoboCasa navigation / atomic tasks
# don't fit it and the VLM hallucinates (e.g. "move stove to stove").
# Leave off unless annotating long composite manipulation tasks you've
# verified render cleanly (and even then replace_subtask_text stays
# off by default so records are additive, never overwriting subtasks).
# don't fit it and the VLM hallucinates. When on, records are purely
# additive (emitted as style="action_record" rows) and never touch
# the subtask text — useful only for long composite manipulation
# tasks. Leave off for RoboCasa atomic / navigation.
# Keep subtask decomposition tight for atomic tasks:
"--plan.plan_max_steps=6 "
# Phase 2 — interjections + speech.