diff --git a/lib/crewai/src/crewai/crew.py b/lib/crewai/src/crewai/crew.py index ebd0461e2..2c7f583b9 100644 --- a/lib/crewai/src/crewai/crew.py +++ b/lib/crewai/src/crewai/crew.py @@ -732,7 +732,6 @@ class Crew(FlowTrackable, BaseModel): ) raise finally: - crewai_event_bus.flush() detach(token) def kickoff_for_each( @@ -881,7 +880,6 @@ class Crew(FlowTrackable, BaseModel): ) raise finally: - await asyncio.to_thread(crewai_event_bus.flush) detach(token) async def akickoff_for_each( diff --git a/lib/crewai/src/crewai/events/event_bus.py b/lib/crewai/src/crewai/events/event_bus.py index e537c41f3..4287efb58 100644 --- a/lib/crewai/src/crewai/events/event_bus.py +++ b/lib/crewai/src/crewai/events/event_bus.py @@ -556,6 +556,9 @@ class CrewAIEventsBus: wait: If True, wait for all pending tasks to complete before stopping. If False, cancel all pending tasks immediately. """ + if wait: + self.flush() + with self._rwlock.w_locked(): self._shutting_down = True loop = getattr(self, "_loop", None) diff --git a/lib/crewai/src/crewai/flow/flow.py b/lib/crewai/src/crewai/flow/flow.py index b84b444ef..715fd44fd 100644 --- a/lib/crewai/src/crewai/flow/flow.py +++ b/lib/crewai/src/crewai/flow/flow.py @@ -1448,7 +1448,6 @@ class Flow(Generic[T], metaclass=FlowMeta): return final_output finally: - await asyncio.to_thread(crewai_event_bus.flush) detach(flow_token) async def akickoff( diff --git a/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_agent_events_have_event_ids.yaml b/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_agent_events_have_event_ids.yaml index 79769ab99..6fcf6c53b 100644 --- a/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_agent_events_have_event_ids.yaml +++ b/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_agent_events_have_event_ids.yaml @@ -50,14 +50,14 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFJdT9wwEHzPr1j5+YISyBHIGxSBSh+Q+qGq16LI2JvErWMbewOt0P33 - yslxCS2V+hIpOzvjmd19SgCYkqwCJjpOonc6vciyL809bdafPpy/e3N9XV5Jer85uzkPny82bBUZ - 9u47CnpmHQjbO42krJlg4ZETRtW8PD45OS3WeTkCvZWoI611lBYHedoro9LD7HCdZkWaFzt6Z5XA - wCr4mgAAPI3faNRI/MkqyFbPlR5D4C2yat8EwLzVscJ4CCoQN8RWMyisITSj94+dHdqOKngLxj6C - 4AZa9YDAoY0BgJvwiP6buVSGazgb/yqQ1uBS0GMzBB5TmUHrBcCNscTjVMYotztkuzevbeu8vQt/ - UFmjjApd7ZEHa6LRQNaxEd0mALfjkIYXuZnztndUk/2B43P5+nTSY/NyFmixA8kS14t6ebR6Ra+W - SFzpsBgzE1x0KGfqvBM+SGUXQLJI/beb17Sn5Mq0/yM/A0KgI5S18yiVeJl4bvMYb/dfbfspj4ZZ - QP+gBNak0MdNSGz4oKeDYuFXIOzrRpkWvfNquqrG1UflMS+FwCZnyTb5DQAA//8DAJn9dBVkAwAA + H4sIAAAAAAAAAwAAAP//jFLBbtswDL37Kwid4yJOnTr1regwrMN2C7DDVhisTNtaZUmQ6GZFkX8f + ZKexu3XALgbMx/f0HsmXBECoWpQgZIcse6fTD+t12B1QfpN+n/Ht/stjc2icvvsaPj1/FqvIsA8/ + SfIr60La3mliZc0ES0/IFFWz4mq3u94Wm3wEeluTjrTWcZpfZGmvjEo36802Xedplp/onVWSgijh + ewIA8DJ+o1FT0y9Rwnr1WukpBGxJlOcmAOGtjhWBIajAaFisZlBaw2RG7/vODm3HJdyBsQeQaKBV + TwQIbQwAaMKB/A/zURnUcDP+lVBbQ0tBT80QMKYyg9YLAI2xjHEqY5T7E3I8m9e2dd4+hD+oolFG + ha7yhMGaaDSwdWJEjwnA/Tik4U1u4bztHVdsH2l8LtteT3piXs4CzU8gW0a9qBeXq3f0qpoYlQ6L + MQuJsqN6ps47waFWdgEki9R/u3lPe0quTPs/8jMgJTmmunKeaiXfJp7bPMXb/VfbecqjYRHIPylJ + FSvycRM1NTjo6aBEeA5MfdUo05J3Xk1X1bjqsrjCQkpqMpEck98AAAD//wMAnStaOGQDAAA= headers: CF-RAY: - CF-RAY-XXX @@ -66,7 +66,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 20 Jan 2026 07:35:17 GMT + - Tue, 20 Jan 2026 07:55:25 GMT Server: - cloudflare Set-Cookie: @@ -86,13 +86,13 @@ interactions: openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - - '520' + - '601' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' x-envoy-upstream-service-time: - - '538' + - '628' x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: diff --git a/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_llm_events_have_parent.yaml b/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_llm_events_have_parent.yaml index 3a82a4b47..85d955141 100644 --- a/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_llm_events_have_parent.yaml +++ b/lib/crewai/tests/cassettes/events/TestAgentEventOrdering.test_llm_events_have_parent.yaml @@ -50,14 +50,14 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFJda9wwEHz3r1j0fA524vvyWyAkFEKh0D6kbTCKtLaVyishyXdpw/33 - IvtydtoE8mLwzs5oZnefEwCmJCuBiZYH0VmdXmXZXXOLq9vHP09y9/kb3a1uvn/ptq3dbzu2iAzz - 8IgivLDOhOmsxqAMjbBwyANG1Xy92my2xTLfDEBnJOpIa2xIi7M87RSp9Dw7X6ZZkebFkd4aJdCz - En4kAADPwzcaJYlPrIRs8VLp0HveICtPTQDMGR0rjHuvfOAU2GIChaGANHj/2pq+aUMJn4DMHgQn - aNQOgUMTAwAnv0f3k64VcQ2Xw18JrZrLOax7z2Mm6rWeAZzIBB5nMgS5PyKHk3VtGuvMg/+HympF - yreVQ+4NRZs+GMsG9JAA3A8j6l+lZtaZzoYqmF84PJcvt6Mem1YzQ4sjGEzgelZfXyze0KskBq60 - nw2ZCS5alBN12gjvpTIzIJml/t/NW9pjckXNR+QnQAi0AWVlHUolXiee2hzGy32v7TTlwTDz6HZK - YBUUurgJiTXv9XhOzP/2AbuqVtSgs06NN1Xb6mK94mshsM5Zckj+AgAA//8DAJ/ajdRiAwAA + H4sIAAAAAAAAAwAAAP//jFLBbtswDL37Kwid48JOk7rxLUAxdIdil24osBUGI9M2N1kSJLnpUOTf + Bzlp7HYdsIsB8/E9vUfyJQEQXIsShOwwyN6q9CbL/Gb7sH/YfZUFP+Pdt1u/VTdfbu8afS8WkWF2 + P0mGV9aFNL1VFNjoIywdYaComhdX19ebdbFcj0BvalKR1tqQri7ytGfN6TJbrtNslearE70zLMmL + Er4nAAAv4zca1TU9ixKyxWulJ++xJVGemwCEMypWBHrPPqAOYjGB0uhAevR+35mh7UIJn0GbPUjU + 0PITAUIbAwBqvyf3Q39ijQq2418JHc/lHDWDx5hJD0rNANTaBIwzGYM8npDD2boyrXVm599RRcOa + fVc5Qm90tOmDsWJEDwnA4zii4U1qYZ3pbaiC+UXjc/l6c9QT02pm6OoEBhNQzerF5eIDvaqmgKz8 + bMhCouyonqjTRnCo2cyAZJb6bzcfaR+Ts27/R34CpCQbqK6so5rl28RTm6N4uf9qO095NCw8uSeW + VAUmFzdRU4ODOp6T8L99oL5qWLfkrOPjTTW2uiyusJCSmlwkh+QPAAAA//8DAASWsy5iAwAA headers: CF-RAY: - CF-RAY-XXX @@ -66,7 +66,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 20 Jan 2026 07:35:18 GMT + - Tue, 20 Jan 2026 07:55:26 GMT Server: - cloudflare Set-Cookie: @@ -86,13 +86,13 @@ interactions: openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - - '420' + - '369' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' x-envoy-upstream-service-time: - - '448' + - '391' x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: diff --git a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_completed_after_started.yaml b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_completed_after_started.yaml index 347277ef5..ac8d0ed92 100644 --- a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_completed_after_started.yaml +++ b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_completed_after_started.yaml @@ -50,14 +50,14 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFJNa9wwEL37Vww6r4O98X7Ut0La0h5KIb0sbTCKNJbVypLQyNkuYf97 - kXezdpoEejF43ryn92bmMQNgWrIamOh4FL03+U1R7NTtF72TH3b0jfo9qtV1rw63X2+Wn9giMdz9 - LxTxiXUlXO8NRu3sCRYBecSkWm7W2+27alVuR6B3Ek2iKR/z6qrMe211viyWq7yo8rI60zunBRKr - 4UcGAPA4fpNRK/EPq6FYPFV6JOIKWX1pAmDBmVRhnEhT5DayxQQKZyPa0fv3zg2qizV8Buv2ILgF - pR8QOKgUALilPYaf9qO23MD78a+GA9JcL2A7EE+h7GDMDODWusjTUMYkd2fkePFunPLB3dM/VNZq - q6lrAnJyNvmk6Dwb0WMGcDfOaHgWm/ngeh+b6H7j+Fy5Lk96bNrNDK3OYHSRm1l9s1q8otdIjFwb - mk2ZCS46lBN1WgkfpHYzIJulfunmNe1Tcm3V/8hPgBDoI8rGB5RaPE88tQVMp/tW22XKo2FGGB60 - wCZqDGkTEls+mNM9MTpQxL5ptVUYfNCno2p9c71Z840Q2JYsO2Z/AQAA//8DALjcfKRjAwAA + H4sIAAAAAAAAAwAAAP//jFJda9wwEHz3r1j0fA72nT9SvxVC0mvfSimUNpiNvLbVypKQ5CRHuP9e + ZF/OTpNAXwze2RnN7O5TBMBEwypgvEfPByPjqyRxN1efH2+w+DGkn/bF9a7Nv/f7/PA1+8I2gaHv + fhP3z6wLrgcjyQutZphbQk9BNS2Ly8sPebnbTsCgG5KB1hkfZxdpPAgl4m2yzeMki9PsRO+14ORY + BT8jAICn6RuMqoYeWQXJ5rkykHPYEavOTQDMahkqDJ0TzqPybLOAXCtPavL+rddj1/sK9qD0A3BU + 0Il7AoQuBABU7oHsL3UtFEr4OP1VcCC31rPUjg5DKDVKuQJQKe0xDGVKcntCjmfvUnfG6jv3D5W1 + QgnX15bQaRV8Oq8Nm9BjBHA7zWh8EZsZqwfja6//0PRcWqSzHlt2s0KzE+i1R7mql/nmDb26IY9C + utWUGUfeU7NQl5Xg2Ai9AqJV6tdu3tKekwvV/Y/8AnBOxlNTG0uN4C8TL22Wwum+13ae8mSYObL3 + glPtBdmwiYZaHOV8T8wdnKehboXqyBor5qNqTb0rCyw5pzZl0TH6CwAA//8DAPUTEd9jAwAA headers: CF-RAY: - CF-RAY-XXX @@ -66,7 +66,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 20 Jan 2026 07:35:19 GMT + - Tue, 20 Jan 2026 07:55:33 GMT Server: - cloudflare Set-Cookie: @@ -86,13 +86,13 @@ interactions: openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - - '586' + - '418' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' x-envoy-upstream-service-time: - - '606' + - '434' x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: diff --git a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_events_have_event_ids.yaml b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_events_have_event_ids.yaml index 28cb3f534..e95f075c1 100644 --- a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_events_have_event_ids.yaml +++ b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_crew_events_have_event_ids.yaml @@ -50,14 +50,14 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFLLbtswELzrKxY8W4HkynKim4GgaA/toXAPfQQCTa0kNhSXIKm4ReB/ - L0g5lpKmQC4CtLMznNndxwSAyYZVwETPvRiMSm+z7Fu/3zm3/76mtt+VX+4/F/bTh/LrkQ5sFRh0 - +IXCP7GuBA1GoZekJ1hY5B6Dar4tr69vik1+E4GBGlSB1hmfFld5Okgt03W23qRZkebFmd6TFOhY - BT8SAIDH+A1GdYO/WQXZ6qkyoHO8Q1ZdmgCYJRUqjDsnnefas9UMCtIedfS+72nsel/BR9B0BME1 - dPIBgUMXAgDX7oj2p34vNVewi38V9KgULRUttqPjIZYelVoAXGvyPIwlZrk7I6eLe0WdsXRwL6is - lVq6vrbIHeng1HkyLKKnBOAuTml8FpwZS4Pxtad7jM/lZT7psXk7C7Q4g548V4v6drN6Ra9u0HOp - 3GLOTHDRYzNT56XwsZG0AJJF6n/dvKY9JZe6e4v8DAiBxmNTG4uNFM8Tz20Ww/H+r+0y5WiYObQP - UmDtJdqwiQZbPqrpopj74zwOdSt1h9ZYOZ1Va+p325JvhcA2Z8kp+QsAAP//AwCEhgo7ZQMAAA== + H4sIAAAAAAAAA4xSTW/bMAy9+1cQOsdFnOarvm0YtvWyU4EdtsJgZdrWJouCRKcrivz3QU4au1sH + 7GLAfHxP75F8zgCUqVUJSncouvc2/7Bcxk9PX776fs+fe2zu+PYgZLvu/VZu1CIx+OEHaXlhXWnu + vSUx7E6wDoRCSbXYbff7m83uejUCPddkE631kq+virw3zuSr5WqTL9d5sT7TOzaaoirhWwYA8Dx+ + k1FX0y9VwnLxUukpRmxJlZcmABXYporCGE0UdKIWE6jZCbnR+13HQ9tJCbfg+BE0OmjNgQChTQEA + XXyk8N19NA4tvBv/SujIWp4rBmqGiCmWG6ydAegcC6axjFnuz8jx4t5y6wM/xD+oqjHOxK4KhJFd + chqFvRrRYwZwP05peBVc+cC9l0r4J43PFdvipKem7czQ9RkUFrSz+m6zeEOvqknQ2Dibs9KoO6on + 6rQUHGrDMyCbpf7bzVvap+TGtf8jPwFakxeqKx+oNvp14qktUDref7VdpjwaVpHCwWiqxFBIm6ip + wcGeLkrFpyjUV41xLQUfzOmsGl9d77a405qaQmXH7DcAAAD//wMAQklYDmUDAAA= headers: CF-RAY: - CF-RAY-XXX @@ -66,7 +66,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 20 Jan 2026 07:35:20 GMT + - Tue, 20 Jan 2026 07:55:32 GMT Server: - cloudflare Set-Cookie: @@ -86,13 +86,13 @@ interactions: openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - - '473' + - '581' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' x-envoy-upstream-service-time: - - '618' + - '619' x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: diff --git a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_task_parent_is_crew.yaml b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_task_parent_is_crew.yaml index 74b684fbb..66494d36a 100644 --- a/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_task_parent_is_crew.yaml +++ b/lib/crewai/tests/cassettes/events/TestCrewEventOrdering.test_task_parent_is_crew.yaml @@ -50,14 +50,14 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAA4xSXWvcMBB8969Y9HwO9vU+Ur+1JAeBQqH0pbTB6OS1rUReCWl9aQj334t017PT - ptAXg3d2RjO7+5IBCN2ICoTqJavBmfymKL5pPtx9/rikzU3x5YF22/3umXa3n4pbsYgMu39Axb9Z - V8oOziBrSydYeZSMUbXcbq6v36/WyyIBg23QRFrnOF9dlfmgSefLYrnOi1Vers703mqFQVTwPQMA - eEnfaJQa/CkqSGKpMmAIskNRXZoAhLcmVoQMQQeWxGIxgcoSIyXvX3s7dj1XcAdkn0BJgk4fECR0 - MQBICk/of9BOkzTwIf1VYB/nch7bMciYiUZjZoAksizjTFKQ+zNyvFg3tnPe7sMfVNFq0qGvPcpg - KdoMbJ1I6DEDuE8jGl+lFs7bwXHN9hHTc+WmPOmJaTUzdHUG2bI0s/p2vXhDr26QpTZhNmShpOqx - majTRuTYaDsDslnqv928pX1Krqn7H/kJUAodY1M7j41WrxNPbR7j5f6r7TLlZFgE9AetsGaNPm6i - wVaO5nROIjwHxqFuNXXondenm2pd/W67kVulsC1Fdsx+AQAA//8DAEJgbhBiAwAA + H4sIAAAAAAAAAwAAAP//jFJda9wwEHz3r1j0fA72fTnxW6GU9iglD4FC22A28tpWI0tCWicN4f57 + kX05O20KfTF4Z2c0s7vPCYBQtShByA5Z9k6n77MsfCRyX9ZDsTnsrp/Wh5v++uu37urzoRWryLB3 + P0nyC+tC2t5pYmXNBEtPyBRV82J/eXm1KzabEehtTTrSWsfp9iJPe2VUus7WuzTbpvn2RO+skhRE + Cd8TAIDn8RuNmpp+iRKy1UulpxCwJVGemwCEtzpWBIagAqNhsZpBaQ2TGb3fdHZoOy7hExj7CBIN + tOqBAKGNAQBNeCT/w3xQBjW8G/9KsPdLOU/NEDBmMoPWCwCNsYxxJmOQ2xNyPFvXtnXe3oU/qKJR + RoWu8oTBmmgzsHViRI8JwO04ouFVauG87R1XbO9pfC7f55OemFezQLcnkC2jXtSL3eoNvaomRqXD + YshCouyonqnzRnColV0AySL1327e0p6SK9P+j/wMSEmOqa6cp1rJ14nnNk/xcv/Vdp7yaFgE8g9K + UsWKfNxETQ0OejonEZ4CU181yrTknVfTTTWu2hR7LKSkJhfJMfkNAAD//wMAw/X5HWIDAAA= headers: CF-RAY: - CF-RAY-XXX @@ -66,7 +66,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 20 Jan 2026 07:35:20 GMT + - Tue, 20 Jan 2026 07:55:34 GMT Server: - cloudflare Set-Cookie: @@ -86,13 +86,13 @@ interactions: openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - - '474' + - '499' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' x-envoy-upstream-service-time: - - '498' + - '517' x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: diff --git a/lib/crewai/tests/events/test_event_ordering.py b/lib/crewai/tests/events/test_event_ordering.py index 2f8fafa36..a1a9b9662 100644 --- a/lib/crewai/tests/events/test_event_ordering.py +++ b/lib/crewai/tests/events/test_event_ordering.py @@ -129,6 +129,7 @@ class TestCrewEventOrdering: ) crew = Crew(agents=[agent], tasks=[task], verbose=False) crew.kickoff() + crewai_event_bus.flush() started = collector.first(CrewKickoffStartedEvent) completed = collector.first(CrewKickoffCompletedEvent) @@ -157,6 +158,7 @@ class TestCrewEventOrdering: ) crew = Crew(agents=[agent], tasks=[task], verbose=False) crew.kickoff() + crewai_event_bus.flush() started = collector.first(CrewKickoffStartedEvent) completed = collector.first(CrewKickoffCompletedEvent) @@ -183,6 +185,7 @@ class TestCrewEventOrdering: ) crew = Crew(agents=[agent], tasks=[task], verbose=False) crew.kickoff() + crewai_event_bus.flush() crew_started = collector.first(CrewKickoffStartedEvent) task_started = collector.first(TaskStartedEvent) @@ -272,6 +275,7 @@ class TestFlowWithCrewEventOrdering: flow = SimpleFlow() flow.kickoff() + crewai_event_bus.flush() flow_started = collector.first(FlowStartedEvent) flow_finished = collector.first(FlowFinishedEvent) @@ -305,6 +309,7 @@ class TestFlowWithCrewEventOrdering: flow = FlowWithMethod() flow.kickoff() + crewai_event_bus.flush() flow_started = collector.first(FlowStartedEvent) method_started = collector.first(MethodExecutionStartedEvent) @@ -336,6 +341,7 @@ class TestFlowWithCrewEventOrdering: flow = FlowWithCrew() flow.kickoff() + crewai_event_bus.flush() method_started = collector.first(MethodExecutionStartedEvent) crew_started = collector.first(CrewKickoffStartedEvent) @@ -387,6 +393,7 @@ class TestFlowWithMultipleCrewsEventOrdering: flow = TwoCrewFlow() flow.kickoff() + crewai_event_bus.flush() crew_started_events = collector.all_of(CrewKickoffStartedEvent) @@ -432,6 +439,7 @@ class TestFlowWithMultipleCrewsEventOrdering: flow = SequentialCrewFlow() flow.kickoff() + crewai_event_bus.flush() crew_started_events = collector.all_of(CrewKickoffStartedEvent) @@ -482,6 +490,7 @@ class TestFlowWithMultipleCrewsEventOrdering: flow = ParentTestFlow() flow.kickoff() + crewai_event_bus.flush() crew_started_events = collector.all_of(CrewKickoffStartedEvent) task_started_events = collector.all_of(TaskStartedEvent) @@ -496,4 +505,4 @@ class TestFlowWithMultipleCrewsEventOrdering: task2_parent = task_started_events[1].parent_event_id assert task1_parent == crew1_id - assert task2_parent == crew2_id \ No newline at end of file + assert task2_parent == crew2_id