验证 Phase1 持久化重载后不生成 GoalTree,Trace API 明确返回 goal_tree=null。\n\n同时移除边界测试中遗留的 TaskRecord.goal_id 参数,确保 Host 测试只依赖 TaskLedger 显式编排合同。
@@ -430,6 +430,7 @@ async def test_phase_two_observation_hides_foreign_resources_and_returns_owned_a
owned_trace = await client.get("/api/pattern/script_builds/7/traces/worker-7")
assert owned_trace.status_code == 200
assert owned_trace.json()["trace"]["trace_id"] == "worker-7"
+ assert owned_trace.json()["goal_tree"] is None
foreign_trace = await client.get("/api/pattern/script_builds/7/traces/worker-8")
assert foreign_trace.status_code == 404
@@ -596,10 +596,10 @@ async def test_real_runner_phase_one_fail_revise_pass_direction_accept_then_root
binding.root_trace_id
)
assert reloaded_ledger.tasks[reloaded_ledger.root_task_id].status == TaskStatus.BLOCKED
- reloaded_trace = await FileSystemTraceStore(str(tmp_path / "trace")).get_trace(
- binding.root_trace_id
- )
+ reloaded_traces = FileSystemTraceStore(str(tmp_path / "trace"))
+ reloaded_trace = await reloaded_traces.get_trace(binding.root_trace_id)
assert reloaded_trace is not None
+ assert await reloaded_traces.get_goal_tree(binding.root_trace_id) is None
submitted = next(
attempt for attempt in reloaded_ledger.attempts.values() if attempt.snapshot_id
@@ -61,7 +61,6 @@ WRITE = "script-build://writes/full"
def _task(task_id: str, parent: str | None, kind: str, status: TaskStatus) -> TaskRecord:
return TaskRecord(
task_id=task_id,
- goal_id=None,
parent_task_id=parent,
display_path=task_id,
specs=[