feat: trace task sources to fixed workflow activations and rounds

This commit is contained in:
2026-09-18 07:14:55 +08:00
parent b9e4191c6b
commit ae0d08584a
27 changed files with 593 additions and 47 deletions

View File

@@ -70,6 +70,12 @@ func TestIntegrationTaskSource(t *testing.T) {
expectWorkerCode(t, err, "UNAVAILABLE")
}
f.exec(`UPDATE pulse_tasks SET retry_of=? WHERE namespace_id=? AND id=?`, original.ID, f.resources.NamespaceID, child.Task.ID)
// 没有外键时,父任务即使丢失owner,反向流程关联仍能揭示其不是独立任务。
activation := executionID(t)
f.exec(`INSERT INTO weave_activations(namespace_id,id,workflow_id,step_id,sequence,task_id,input) VALUES (?,?,?,?,1,?,'{}')`, f.resources.NamespaceID, activation, executionID(t), executionID(t), original.ID)
_, err = f.tasks.GetTaskSource(ctx, f.token, child.Task.ID)
expectWorkerCode(t, err, "UNAVAILABLE")
f.exec(`DELETE FROM weave_activations WHERE namespace_id=? AND id=?`, f.resources.NamespaceID, activation)
f.exec(`UPDATE orbit_credentials SET revoked_at=UTC_TIMESTAMP(6) WHERE namespace_id=? AND id=?`, f.resources.NamespaceID, f.resources.CredentialID)
_, err = f.tasks.GetTaskSource(ctx, f.token, child.Task.ID)
expectWorkerCode(t, err, "UNAUTHENTICATED")