Skip to content

fix: ensure memory drain in akickoff async method#4768

Open
jnMetaCode wants to merge 1 commit intocrewAIInc:mainfrom
jnMetaCode:fix/akickoff-missing-memory-drain
Open

fix: ensure memory drain in akickoff async method#4768
jnMetaCode wants to merge 1 commit intocrewAIInc:mainfrom
jnMetaCode:fix/akickoff-missing-memory-drain

Conversation

@jnMetaCode
Copy link
Copy Markdown

@jnMetaCode jnMetaCode commented Mar 8, 2026

Summary

The sync kickoff() method includes a drain_writes() call in its finally block to ensure all background memory saves complete before returning:

# kickoff() finally block (line 744)
if self._memory is not None and hasattr(self._memory, "drain_writes"):
    self._memory.drain_writes()

The async akickoff() method is missing this call, which means memory writes may be lost when using async execution. This was likely a copy-paste oversight when akickoff was added.

Fix

Added the same drain_writes() guard to akickoff()'s finally block.


Note

Medium Risk
Low-complexity change, but it adds a blocking drain_writes() call to an async code path, which could impact latency or surface exceptions during shutdown.

Overview
Crew.akickoff() now mirrors kickoff() by draining pending background memory writes in its finally block (guarded by hasattr(self._memory, "drain_writes")) before clearing files and detaching context.

This prevents async executions from returning before queued memory saves complete, reducing the chance of dropped memories.

Written by Cursor Bugbot for commit 46f0736. This will update automatically on new commits. Configure here.

The sync kickoff() method calls self._memory.drain_writes() in its
finally block to ensure background memory saves complete before
returning. The async akickoff() method is missing this call, which
can lead to lost memory writes when using async execution.

Signed-off-by: JiangNan <1394485448@qq.com>
@github-actions
Copy link
Copy Markdown
Contributor

This PR is stale because it has been open for 45 days with no activity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant