ARCHIVED TRAINING / omni-us/jsonargparse
omni-us__jsonargparse-839
This is a preserved training example. Membership in the current training wave has not been verified.
Problem statement
Error with Union of nested dataclasses: Does not validate against any of the Union subtypes ... Not a valid subclass of
## 🐛 Bug report
I am trying to move from simple-parsing to jsonargparse and I have this error for a config with dataclasses that have Union of other nested dataclasses as a type:
```
Does not validate against any of the Union subtypes
Not a valid subclass of
```
### To reproduce
2. Manually constructing a parser
```python
import sys
from dataclasses import dataclass, field
from datetime import UTC, date, datetime
from enum import StrEnum, auto
from jsonargparse import ArgumentParser
from jsonargparse.typing import register_type
def date_serializer(value: date) -> str:
return value.isoformat()
def date_deserializer(value: str) -> date:
return datetime.strptime(value, "%Y-%m-%d").astimezone(UTC).date()
register_type(date, date_serializer, date_deserializer)
class Environment(StrEnum):
dev = auto()
tst = auto()
val = auto()
prd = ""
dc_prd = "prd"
class Layer(StrEnum):
landing = auto()
bronze = auto()
silver = auto()
gold = auto()
any = ""
class FileFormat(StrEnum):
parquet = auto()
delta = auto()
csv = auto()
json = auto()
@dataclass
class TablePath:
catalog: str
schema: str
table: str
@dataclass
class File:
name: str
format: FileFormat
@dataclass
class FilePath:
location: str
folder: str
file: File
@dataclass
class TableArgs:
path: TablePath | FilePath
env: Environment
layer: Layer = Layer.any
columns: list[str] = field(default_factory=list)
pk_cols: list[str] = field(default_factory=list)
@dataclass
class ConfigArgs:
main_catalog: str
dates_dimension_start_date: date = field(
default_factory=lambda: datetime(2010, 1, 1, tzinfo=UTC).date(),
)
@dataclass
class MainArgs:
config: ConfigArgs
source: TableArgs
target: TableArgs
def parse_args(cli_args: list[str]) -> MainArgs:
parser = ArgumentParser()
parser.add_class_arguments(
MainArgs,
as_group=False,
as_positional=False,
)
print(cli_args)
result = parser.parse_args(cli_args)
print(parser.dump(result))
ns = parser.instantiate_classes(result)
return MainArgs(**ns.as_dict())
class TestJsonargparse:
def test_table_source(self) -> None:
"""Parse table source (format not set)."""
cli_args = [
"--config.main_catalog",
"spark_catalog",
"--config.dates_dimension_start_date",
"2010-01-01",
"--source.path.catalog",
"source_cat",
"--source.path.schema",
"source_sch",
"--source.path.table",
"source_tbl",
"--source.env",
"dev",
"--target.path.catalog",
"target_cat",
"--target.path.schema",
"target_sch",
"--target.path.table",
"target_tbl",
"--target.env",
"dev",
"--target.columns",
"['col1', 'col2']",
]
result = parse_args(cli_args)
assert result.source.path.catalog == "source_cat"
assert result.source.path.schema == "source_sch"
assert result.target.columns == ["col1", "col2"]
def test_file_source(self) -> None:
"""Parse file source (format is set)."""
cli_args = [
"--config.main_catalog",
"spark_catalog",
"--source.path.location",
"/data/file.csv",
"--source.path.folder",
"/data/file.csv",
"--source.path.file.name",
"file.csv",
"--source.path.file.format",
"csv",
"--source.env",
"dev",
"--source.layer",
"any",
"--target.path.catalog",
"target_cat",
"--target.path.schema",
"target_sch",
"--target.path.table",
"target_tbl",
"--target.env",
"dev",
]
result = parse_args(cli_args)
assert result.source.path.location == "/data/file.csv"
assert result.source.path.folder == "/data/file.csv"
assert result.source.layer == Layer.any
if __name__ == "__main__":
parse_args(sys.argv)
```
Running help with FilePath gives me this:
```
python test_json_parse.py --source.path.help FilePath
['test_json_parse.py', '--source.path.help', 'FilePath']
usage: test_json_parse.py --source.path.location LOCATION --source.path.folder FOLDER --source.path.file.name NAME --source.path.file.format {parquet,delta,csv,json}
Help for --source.path.help=__main__.FilePath
FilePath(location: str, folder: str, file: __main__.File):
--source.path.location LOCATION
(required, type: str)
--source.path.folder FOLDER
(required, type: str)
File(name: str, format: __main__.FileFormat):
--source.path.file.name NAME
(required, type: str)
--source.path.file.format {parquet,delta,csv,json}
(required, type: FileFormat)
```
### Expected behavior
The first test that uses TablePath passes. But the second test that uses FilePath fails with this error:
```
ex = TypeError('Parser key "source.path":\n Does not validate against any of the Union subtypes\n Subtypes: [<class \'components.qm.task_args.test_json_parse.TablePath\'>, <class \'components.qm.task_args.test_json_parse.FilePath\'>]\n Errors:\n - Not a valid subclass of TablePath\n Subclass types expect one of:\n - a class path (str)\n - a dict with class_path entry\n - a dict without class_path but with init_args entry (class path given previously)\n - a dict with parameters accepted by the base class (implicit class_path)\n - Not a valid subclass of FilePath\n Subclass types expect one of:\n - a class path (str)\n - a dict with class_path entry\n - a dict without class_path but with init_args entry (class path given previously)\n - a dict with parameters accepted by the base class (implicit class_path)\n Given value type: <class \'jsonargparse._namespace.Namespace\'>\n Given value: Namespace(location=\'/data/file.csv\', folder=\'/data/file.csv\', file=Namespace(name=None, format=None), init_args=Namespace(location=\'/data/file.csv\', folder=\'/data/file.csv\', file=Namespace(name=\'file.csv\', format=<FileFormat.csv: \'csv\'>)), class_path=\'components.qm.task_args.test_json_parse.FilePath\')')
help_action = _HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, required=False, help='show this help message and exit', metavar=None)
message = ('Parser key "source.path":\n'
' Does not validate against any of the Union subtypes\n'
" Subtypes: [<class 'components.qm.task_args.test_json_parse.TablePath'>, "
"<class 'components.qm.task_args.test_json_parse.FilePath'>]\n"
' Errors:\n'
' - Not a valid subclass of TablePath\n'
' Subclass types expect one of:\n'
' - a class path (str)\n'
' - a dict with class_path entry\n'
' - a dict without class_path but with init_args entry (class path given '
'previously)\n'
' - a dict with parameters accepted by the base class (implicit '
'class_path)\n'
' - Not a valid subclass of FilePath\n'
' Subclass types expect one of:\n'
' - a class path (str)\n'
' - a dict with class_path entry\n'
' - a dict without class_path but with init_args entry (class path given '
'previously)\n'
' - a dict with parameters accepted by the base class (implicit '
'class_path)\n'
" Given value type: <class 'jsonargparse._namespace.Namespace'>\n"
" Given value: Namespace(location='/data/file.csv', folder='/data/file.csv', "
'file=Namespace(name=None, format=None), '
"init_args=Namespace(location='/data/file.csv', folder='/data/file.csv', "
"file=Namespace(name='file.csv', format=<FileFormat.csv: 'csv'>)), "
"class_path='components.qm.task_args.test_json_parse.FilePath')")
parser = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)
prog = 'run_pytest_script.py'
self = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)
../.venv/lib/python3.12/site-packages/jsonargparse/_core.py:1069:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)
status = 2, message = None
def exit(self, status=0, message=None):
if message:
self._print_message(message, _sys.stderr)
> _sys.exit(status)
E SystemExit: 2
message = None
self = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)
status = 2
../../../.local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/lib/python3.12/argparse.py:2637: SystemExit
----------------------------- Captured stdout call -----------------------------
['--config.main_catalog', 'spark_catalog', '--source.path.location', '/data/file.csv', '--source.path.folder', '/data/file.csv', '--source.path.file.name', 'file.csv', '--source.path.file.format', 'csv', '--source.env', 'dev', '--source.layer', 'any', '--target.path.catalog', 'target_cat', '--target.path.schema', 'target_sch', '--target.path.table', 'target_tbl', '--target.env', 'dev']
----------------------------- Captured stderr call -----------------------------
usage: run_pytest_script.py [--config CONFIG]
--config.main_catalog MAIN_CATALOG
[--config.dates_dimension_start_date DATES_DIMENSION_START_DATE]
[--source CONFIG] --source.path PATH
--source.env {dev,tst,val,prd,dc_prd}
[--source.layer {landing,bronze,silver,gold,any}]
[--source.columns [ITEM,...]]
[--source.pk_cols [ITEM,...]] [--target CONFIG]
--target.path PATH
--target.env {dev,tst,val,prd,dc_prd}
[--target.layer {landing,bronze,silver,gold,any}]
[--target.columns [ITEM,...]]
[--target.pk_cols [ITEM,...]]
tip: For details of accepted options run: run_pytest_script.py --help
error: Parser key "source.path":
Does not validate against any of the Union subtypes
Subtypes: [<class 'components.qm.task_args.test_json_parse.TablePath'>, <class 'components.qm.task_args.test_json_parse.FilePath'>]
Errors:
- Not a valid subclass of TablePath
Subclass types expect one of:
- a class path (str)
- a dict with class_path entry
- a dict without class_path but with init_args entry (class path given previously)
- a dict with parameters accepted by the base class (implicit class_path)
- Not a valid subclass of FilePath
Subclass types expect one of:
- a class path (str)
- a dict with class_path entry
- a dict without class_path but with init_args entry (class path given previously)
- a dict with parameters accepted by the base class (implicit class_path)
Given value type: <class 'jsonargparse._namespace.Namespace'>
Given value: Namespace(location='/data/file.csv', folder='/data/file.csv', file=Namespace(name=None, format=None), init_args=Namespace(location='/data/file.csv', folder='/data/file.csv', file=Namespace(name='file.csv', format=<FileFormat.csv: 'csv'>)), class_path='components.qm.task_args.test_json_parse.FilePath')
```
### Environment
- jsonargparse version: 4.45.0
- Python version: 3.12
- How jsonargparse was installed: through uv
- OS: Ubuntu 24.04
Training membership
opd_e4b_hybrid_v3 opd_e4b_onpolicy_v3 opd_e4b_pure_v6b opd_e4b_pure_v7 opd_e4b_pure_v7b rft_e4b_aligned_v2 rft_v1 rft_v2
Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.
Task and snapshot provenance
Snapshot captured 2026-11-12T17:06:59.476467+00:00 · Autoresearch-Arena/gemma-4-developer-agent
{
"datasets": [
"opd_e4b_hybrid_v3",
"opd_e4b_onpolicy_v3",
"opd_e4b_pure_v6b",
"opd_e4b_pure_v7",
"opd_e4b_pure_v7b",
"rft_e4b_aligned_v2",
"rft_v1",
"rft_v2"
],
"examples": 21,
"instance_id": "omni-us__jsonargparse-839",
"problem_statement": "Error with Union of nested dataclasses: Does not validate against any of the Union subtypes ... Not a valid subclass of\n## 🐛 Bug report\n\nI am trying to move from simple-parsing to jsonargparse and I have this error for a config with dataclasses that have Union of other nested dataclasses as a type: \n\n```\nDoes not validate against any of the Union subtypes \nNot a valid subclass of\n```\n\n### To reproduce\n\n2. Manually constructing a parser\n\n```python\nimport sys\nfrom dataclasses import dataclass, field\nfrom datetime import UTC, date, datetime\nfrom enum import StrEnum, auto\n\nfrom jsonargparse import ArgumentParser\nfrom jsonargparse.typing import register_type\n\n\ndef date_serializer(value: date) -> str:\n return value.isoformat()\n\n\ndef date_deserializer(value: str) -> date:\n return datetime.strptime(value, \"%Y-%m-%d\").astimezone(UTC).date()\n\n\nregister_type(date, date_serializer, date_deserializer)\n\n\nclass Environment(StrEnum):\n dev = auto()\n tst = auto()\n val = auto()\n prd = \"\"\n dc_prd = \"prd\"\n\n\nclass Layer(StrEnum):\n landing = auto()\n bronze = auto()\n silver = auto()\n gold = auto()\n any = \"\"\n\n\nclass FileFormat(StrEnum):\n parquet = auto()\n delta = auto()\n csv = auto()\n json = auto()\n\n\n@dataclass\nclass TablePath:\n catalog: str\n schema: str\n table: str\n\n@dataclass\nclass File:\n name: str\n format: FileFormat\n@dataclass\nclass FilePath:\n location: str\n folder: str\n file: File\n\n\n@dataclass\nclass TableArgs:\n path: TablePath | FilePath\n env: Environment\n layer: Layer = Layer.any\n columns: list[str] = field(default_factory=list)\n pk_cols: list[str] = field(default_factory=list)\n\n\n@dataclass\nclass ConfigArgs:\n main_catalog: str\n dates_dimension_start_date: date = field(\n default_factory=lambda: datetime(2010, 1, 1, tzinfo=UTC).date(),\n )\n\n\n@dataclass\nclass MainArgs:\n config: ConfigArgs\n source: TableArgs\n target: TableArgs\n\n\ndef parse_args(cli_args: list[str]) -> MainArgs:\n parser = ArgumentParser()\n parser.add_class_arguments(\n MainArgs,\n as_group=False,\n as_positional=False,\n )\n print(cli_args)\n result = parser.parse_args(cli_args)\n print(parser.dump(result))\n\n ns = parser.instantiate_classes(result)\n return MainArgs(**ns.as_dict())\n\n\nclass TestJsonargparse:\n\n def test_table_source(self) -> None:\n \"\"\"Parse table source (format not set).\"\"\"\n cli_args = [\n \"--config.main_catalog\",\n \"spark_catalog\",\n \"--config.dates_dimension_start_date\",\n \"2010-01-01\",\n \"--source.path.catalog\",\n \"source_cat\",\n \"--source.path.schema\",\n \"source_sch\",\n \"--source.path.table\",\n \"source_tbl\",\n \"--source.env\",\n \"dev\",\n \"--target.path.catalog\",\n \"target_cat\",\n \"--target.path.schema\",\n \"target_sch\",\n \"--target.path.table\",\n \"target_tbl\",\n \"--target.env\",\n \"dev\",\n \"--target.columns\",\n \"['col1', 'col2']\",\n ]\n\n result = parse_args(cli_args)\n\n assert result.source.path.catalog == \"source_cat\"\n assert result.source.path.schema == \"source_sch\"\n assert result.target.columns == [\"col1\", \"col2\"]\n\n def test_file_source(self) -> None:\n \"\"\"Parse file source (format is set).\"\"\"\n cli_args = [\n \"--config.main_catalog\",\n \"spark_catalog\",\n \"--source.path.location\",\n \"/data/file.csv\",\n \"--source.path.folder\",\n \"/data/file.csv\",\n \"--source.path.file.name\",\n \"file.csv\",\n \"--source.path.file.format\",\n \"csv\",\n \"--source.env\",\n \"dev\",\n \"--source.layer\",\n \"any\",\n \"--target.path.catalog\",\n \"target_cat\",\n \"--target.path.schema\",\n \"target_sch\",\n \"--target.path.table\",\n \"target_tbl\",\n \"--target.env\",\n \"dev\",\n ]\n\n result = parse_args(cli_args)\n\n assert result.source.path.location == \"/data/file.csv\"\n assert result.source.path.folder == \"/data/file.csv\"\n assert result.source.layer == Layer.any\n\n\nif __name__ == \"__main__\":\n parse_args(sys.argv)\n\n```\nRunning help with FilePath gives me this:\n```\npython test_json_parse.py --source.path.help FilePath \n['test_json_parse.py', '--source.path.help', 'FilePath']\nusage: test_json_parse.py --source.path.location LOCATION --source.path.folder FOLDER --source.path.file.name NAME --source.path.file.format {parquet,delta,csv,json}\n\nHelp for --source.path.help=__main__.FilePath\n\nFilePath(location: str, folder: str, file: __main__.File):\n --source.path.location LOCATION\n (required, type: str)\n --source.path.folder FOLDER\n (required, type: str)\n\nFile(name: str, format: __main__.FileFormat):\n --source.path.file.name NAME\n (required, type: str)\n --source.path.file.format {parquet,delta,csv,json}\n (required, type: FileFormat)\n```\n\n### Expected behavior\n\nThe first test that uses TablePath passes. But the second test that uses FilePath fails with this error:\n\n```\nex = TypeError('Parser key \"source.path\":\\n Does not validate against any of the Union subtypes\\n Subtypes: [<class \\'components.qm.task_args.test_json_parse.TablePath\\'>, <class \\'components.qm.task_args.test_json_parse.FilePath\\'>]\\n Errors:\\n - Not a valid subclass of TablePath\\n Subclass types expect one of:\\n - a class path (str)\\n - a dict with class_path entry\\n - a dict without class_path but with init_args entry (class path given previously)\\n - a dict with parameters accepted by the base class (implicit class_path)\\n - Not a valid subclass of FilePath\\n Subclass types expect one of:\\n - a class path (str)\\n - a dict with class_path entry\\n - a dict without class_path but with init_args entry (class path given previously)\\n - a dict with parameters accepted by the base class (implicit class_path)\\n Given value type: <class \\'jsonargparse._namespace.Namespace\\'>\\n Given value: Namespace(location=\\'/data/file.csv\\', folder=\\'/data/file.csv\\', file=Namespace(name=None, format=None), init_args=Namespace(location=\\'/data/file.csv\\', folder=\\'/data/file.csv\\', file=Namespace(name=\\'file.csv\\', format=<FileFormat.csv: \\'csv\\'>)), class_path=\\'components.qm.task_args.test_json_parse.FilePath\\')')\nhelp_action = _HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, required=False, help='show this help message and exit', metavar=None)\nmessage = ('Parser key \"source.path\":\\n'\n ' Does not validate against any of the Union subtypes\\n'\n \" Subtypes: [<class 'components.qm.task_args.test_json_parse.TablePath'>, \"\n \"<class 'components.qm.task_args.test_json_parse.FilePath'>]\\n\"\n ' Errors:\\n'\n ' - Not a valid subclass of TablePath\\n'\n ' Subclass types expect one of:\\n'\n ' - a class path (str)\\n'\n ' - a dict with class_path entry\\n'\n ' - a dict without class_path but with init_args entry (class path given '\n 'previously)\\n'\n ' - a dict with parameters accepted by the base class (implicit '\n 'class_path)\\n'\n ' - Not a valid subclass of FilePath\\n'\n ' Subclass types expect one of:\\n'\n ' - a class path (str)\\n'\n ' - a dict with class_path entry\\n'\n ' - a dict without class_path but with init_args entry (class path given '\n 'previously)\\n'\n ' - a dict with parameters accepted by the base class (implicit '\n 'class_path)\\n'\n \" Given value type: <class 'jsonargparse._namespace.Namespace'>\\n\"\n \" Given value: Namespace(location='/data/file.csv', folder='/data/file.csv', \"\n 'file=Namespace(name=None, format=None), '\n \"init_args=Namespace(location='/data/file.csv', folder='/data/file.csv', \"\n \"file=Namespace(name='file.csv', format=<FileFormat.csv: 'csv'>)), \"\n \"class_path='components.qm.task_args.test_json_parse.FilePath')\")\nparser = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)\nprog = 'run_pytest_script.py'\nself = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)\n\n../.venv/lib/python3.12/site-packages/jsonargparse/_core.py:1069: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)\nstatus = 2, message = None\n\n def exit(self, status=0, message=None):\n if message:\n self._print_message(message, _sys.stderr)\n> _sys.exit(status)\nE SystemExit: 2\n\nmessage = None\nself = ArgumentParser(prog='run_pytest_script.py', usage=None, description=None, formatter_class=<class 'jsonargparse._formatters.DefaultHelpFormatter'>, conflict_handler='error', add_help=True)\nstatus = 2\n\n../../../.local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/lib/python3.12/argparse.py:2637: SystemExit\n----------------------------- Captured stdout call -----------------------------\n['--config.main_catalog', 'spark_catalog', '--source.path.location', '/data/file.csv', '--source.path.folder', '/data/file.csv', '--source.path.file.name', 'file.csv', '--source.path.file.format', 'csv', '--source.env', 'dev', '--source.layer', 'any', '--target.path.catalog', 'target_cat', '--target.path.schema', 'target_sch', '--target.path.table', 'target_tbl', '--target.env', 'dev']\n----------------------------- Captured stderr call -----------------------------\nusage: run_pytest_script.py [--config CONFIG]\n --config.main_catalog MAIN_CATALOG\n [--config.dates_dimension_start_date DATES_DIMENSION_START_DATE]\n [--source CONFIG] --source.path PATH\n --source.env {dev,tst,val,prd,dc_prd}\n [--source.layer {landing,bronze,silver,gold,any}]\n [--source.columns [ITEM,...]]\n [--source.pk_cols [ITEM,...]] [--target CONFIG]\n --target.path PATH\n --target.env {dev,tst,val,prd,dc_prd}\n [--target.layer {landing,bronze,silver,gold,any}]\n [--target.columns [ITEM,...]]\n [--target.pk_cols [ITEM,...]]\ntip: For details of accepted options run: run_pytest_script.py --help\nerror: Parser key \"source.path\":\n Does not validate against any of the Union subtypes\n Subtypes: [<class 'components.qm.task_args.test_json_parse.TablePath'>, <class 'components.qm.task_args.test_json_parse.FilePath'>]\n Errors:\n - Not a valid subclass of TablePath\n Subclass types expect one of:\n - a class path (str)\n - a dict with class_path entry\n - a dict without class_path but with init_args entry (class path given previously)\n - a dict with parameters accepted by the base class (implicit class_path)\n - Not a valid subclass of FilePath\n Subclass types expect one of:\n - a class path (str)\n - a dict with class_path entry\n - a dict without class_path but with init_args entry (class path given previously)\n - a dict with parameters accepted by the base class (implicit class_path)\n Given value type: <class 'jsonargparse._namespace.Namespace'>\n Given value: Namespace(location='/data/file.csv', folder='/data/file.csv', file=Namespace(name=None, format=None), init_args=Namespace(location='/data/file.csv', folder='/data/file.csv', file=Namespace(name='file.csv', format=<FileFormat.csv: 'csv'>)), class_path='components.qm.task_args.test_json_parse.FilePath')\n```\n\n### Environment\n\n- jsonargparse version: 4.45.0\n- Python version: 3.12\n- How jsonargparse was installed: through uv\n- OS: Ubuntu 24.04",
"repo": "omni-us/jsonargparse",
"source": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
"source_sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
}{
"captured_at": "2026-11-12T17:06:59.476467+00:00",
"membership": "archived training",
"membership_evidence": "Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.",
"name": "Preserved post-training task archive",
"source": "Autoresearch-Arena/gemma-4-developer-agent",
"source_revision": "016496de222aaafca0d4ee4c18efc63ba616f76e",
"sources": [
{
"path": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
"sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
},
{
"path": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
"sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
},
{
"path": "v2/experiments/train_data/opd_e4b_onpolicy_v3/verified_rft_messages.jsonl",
"sha256": "960c680e797e823a0d3a22f4b1d5ef60a72971373d703b877340b0c9126aaf68"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
"sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
"sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
"sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7b/verified_rft_messages.jsonl",
"sha256": "b864bdc8695183433eef6e31cb8d33fad44ba3aded2170c1ade4ad5b2944ce23"
},
{
"path": "v2/experiments/train_data/opd_e4b_self_audit_v4/verified_rft_messages.jsonl",
"sha256": "0026023745afb8f3dc1c176dc7f7171157b4ad5a66656b524af218e8e19ceee6"
},
{
"path": "v2/experiments/train_data/rft_e4b_aligned_v2/verified_rft_messages.jsonl",
"sha256": "92a4515fee9d152b0d4c510ee3ce4caaaffe2003ba7584469f8027f174aab18c"
},
{
"path": "v2/experiments/train_data/rft_v1/verified_rft_messages.jsonl",
"sha256": "a42453ccd7ac7680b0a03865e8e7080bc8bf74c8d9d193b440c441ed46f8512b"
},
{
"path": "v2/experiments/train_data/rft_v2/verified_rft_messages.jsonl",
"sha256": "18f4b3bd7e651f83c6acab479c9475e3fa50dc652a384f309e97146983ac85ba"
}
]
}