Picking one of the two psychosocial datasets still runs both sub-harms.
Psychosocial._validate_runtime_configuration rebuilds the sources from the sub_harm param (default "all") and adds back any sub-harm dataset that isn't there. So --dataset-names airt_licensed_therapist (or the same through the API) quietly runs imminent_crisis too, and the scenario identity lists both datasets.
Repro through ScenarioConfigurationResolver.resolve_configuration(dataset_names=["airt_licensed_therapist"]) + create_and_initialize_async on main:
requested sources: ['airt_licensed_therapist']
run datasets: ['airt_imminent_crisis', 'airt_licensed_therapist']
atomic attacks: ['imminent_crisis', 'licensed_therapist']
Same thing with sub_harm=imminent_crisis plus only the therapist dataset: it runs imminent_crisis on a dataset the user didn't pick.
The dataset pick should narrow the sub-harms, and a sub_harm with none of its datasets picked should raise.
Picking one of the two psychosocial datasets still runs both sub-harms.
Psychosocial._validate_runtime_configurationrebuilds the sources from thesub_harmparam (default "all") and adds back any sub-harm dataset that isn't there. So--dataset-names airt_licensed_therapist(or the same through the API) quietly runs imminent_crisis too, and the scenario identity lists both datasets.Repro through
ScenarioConfigurationResolver.resolve_configuration(dataset_names=["airt_licensed_therapist"])+create_and_initialize_asyncon main:Same thing with
sub_harm=imminent_crisisplus only the therapist dataset: it runs imminent_crisis on a dataset the user didn't pick.The dataset pick should narrow the sub-harms, and a sub_harm with none of its datasets picked should raise.