fix(plane): runner drops the fields ax's server sets before validating

On the live cluster ax hands AX_TASK_YAML with metadata.creationTimestamp and a
status block; the strict authoring schema rejected it, readiness never turned
green and every resume timed out. Other unknown fields still fail. up.sh retries
the first resume while the golden snapshot builds.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
This commit is contained in:
Marius Ciepluch
2026-09-29 19:17:19 +02:00
co-authored by Claude Opus 5.5
parent 8e6485e577
commit 2e7e0550b2
3 changed files with 37 additions and 3 deletions
+19
View File
@@ -590,3 +590,22 @@ def test_git_commits_annotation_round_trips_to_the_checkout(
checkout = workspace / "code"
assert git("rev-parse", "HEAD", cwd=checkout) == pin, "the pinned commit, not the branch tip"
assert (checkout / "hello.py").read_text() == "print('v1')\n"
def test_the_runner_accepts_what_ax_hands_it() -> None:
"""ax's server adds metadata.creationTimestamp and status (live cluster, 2026-09-29); other fields stay strict."""
from openultrasast.plane.runner import RunnerError, load_task, load_workspaces
task = load_task(
"apiVersion: ax.io/v1alpha1\nkind: Task\nmetadata:\n name: t\n atespace: default\n"
" creationTimestamp: '2026-09-29T17:11:58Z'\nspec:\n command: [repo-facts]\n"
"status:\n phase: Running\n id: task-t-1\n"
)
assert task.metadata.name == "t"
spaces = load_workspaces(
"apiVersion: ax.io/v1alpha1\nkind: Workspace\nmetadata:\n name: w\n"
" creationTimestamp: '2026-09-29T17:11:58Z'\nspec:\n files:\n - path: a.py\n content: x\n"
)
assert list(spaces) == ["w"]
with pytest.raises(RunnerError, match="uid"):
load_task("apiVersion: ax.io/v1alpha1\nkind: Task\nmetadata:\n name: t\n uid: x\nspec: {}\n")