@@ -82,6 +82,8 @@ def _kit_dependencies(experience: Path) -> set[str]:
8282 "No module named 'omni.replicator'" ,
8383 "has no attribute 'enable_cameras'" ,
8484 "has no attribute 'headless'" ,
85+ # Success termination removed while a reward still references it
86+ "Not all regular expressions are matched" ,
8587 # Registry-only XR dependency: the app exits before any marker is printed
8688 "Exiting app because of dependency solver failure" ,
8789)
@@ -95,6 +97,9 @@ def _kit_dependencies(experience: Path) -> set[str]:
9597# Marker logged by ManagerBasedEnv creation, which runs *after* the RTX-apply site that regressed.
9698_ENV_CREATED_MARKER = "Base environment:"
9799
100+ # Marker logged after every manager has initialized successfully.
101+ _ENV_READY_MARKER = "Completed setting up the environment"
102+
98103# Disable CloudXR: no headset connects in CI, and auto-launching the runtime is unnecessary to
99104# exercise the Isaac Teleop device factory (the live session is out of scope for a headless smoke).
100105_NO_CLOUDXR = ["--cloudxr_env" , "none" , "--no-auto_launch_cloudxr" ]
@@ -153,10 +158,10 @@ def _terminate_group(proc: subprocess.Popen) -> None:
153158
154159
155160def _assert_started_cleanly (output : str , markers : list [str ], script : str ) -> None :
156- """Assert the run cleared the #6656 regression and reached a post-startup marker."""
161+ """Assert the run cleared known regressions and reached a post-startup marker."""
157162 tail = output [- 4000 :]
158163 for sig in _REGRESSION_SIGNATURES :
159- assert sig not in output , f"{ script } : #6656 regression signature present ({ sig !r} )\n ---\n { tail } "
164+ assert sig not in output , f"{ script } : regression signature present ({ sig !r} )\n ---\n { tail } "
160165 assert any (marker in output for marker in markers ), (
161166 f"{ script } : did not reach a startup marker { markers } within { _STARTUP_TIMEOUT_S :.0f} s\n ---\n { tail } "
162167 )
@@ -199,6 +204,23 @@ def test_record_demos_starts(tmp_path):
199204 _assert_started_cleanly (output , [_ISAAC_TELEOP_MARKER ], "record_demos.py" )
200205
201206
207+ def test_record_demos_starts_when_reward_references_success (tmp_path ):
208+ """record_demos.py preserves success-term references while disabling automatic resets."""
209+ argv = [
210+ "scripts/tools/record_demos.py" ,
211+ "--task" ,
212+ "Isaac-Reach-Franka" ,
213+ "--teleop_device" ,
214+ "keyboard" ,
215+ "--dataset_file" ,
216+ str (tmp_path / "dataset.hdf5" ),
217+ "physics=isaacsim_physx" ,
218+ "presets=diffik" ,
219+ ]
220+ output = _launch_until_marker (argv , [_ENV_READY_MARKER ], tmp_path / "record_demos_success_reward.log" )
221+ _assert_started_cleanly (output , [_ENV_READY_MARKER ], "record_demos.py with a success reward" )
222+
223+
202224def test_xr_experience_declares_only_shipped_extensions ():
203225 """The XR experience depends on XR extensions Isaac Sim ships, not on a registry-only bundle.
204226
0 commit comments