From b879432947b68b32cf3da601d57484cc9c550186 Mon Sep 17 00:00:00 2001 From: Edgar Arakelyan Date: Wed, 30 Sep 2026 09:58:13 -1000 Subject: [PATCH 1/7] feat(task): a depends_on entry may be a bare step id TaskStepDependency.from_dict takes a step id or {"task_step_id": }, and dependencies() reads a whole depends_on: a lone string or any other shape is a ValueError rather than a list of characters. Steps are still stored in the object form. _validate_dag now tells a step that comes later apart from an id that names no step in the task. The bundle resolver reads depends_on through the same parser, so a malformed one or an unknown id is reported with its cause, not only as an output the step doesn't depend on. Co-Authored-By: Claude Opus 5.5 (1M context) --- README.md | 2 +- src/agent_env/bundle/resolve.py | 39 ++++++---- src/agent_env/task/task.py | 14 +++- src/agent_env/task_step/task_step.py | 31 ++++---- tst/unit/bundle/materialize_test.py | 11 +++ tst/unit/bundle/resolve_test.py | 23 ++++++ tst/unit/task/depends_on_test.py | 107 +++++++++++++++++++++++++++ 7 files changed, 197 insertions(+), 30 deletions(-) create mode 100644 tst/unit/task/depends_on_test.py diff --git a/README.md b/README.md index cebd52b7..02b62327 100644 --- a/README.md +++ b/README.md @@ -617,7 +617,7 @@ agent-env task create task.json --id --project-id