Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
Concurrent ACP/A2A admission can exceed the configured store capacity while an idle agent is being cleaned up. Cleanup removes the old entry before awaiting cleanup_tools; another request can fill that slot before the original request resumes. With a capacity of one, two distinct requests both finish admission and keep running entries in the store.
For A2A, concurrent get_or_create calls for the same new task ID can also construct different agents and overwrite one entry. The callers retain different agents for the same task and the overwritten agent is no longer owned by the store.
Recheck capacity after each awaited eviction. Also recheck A2A task identity before building a replacement. Agent construction and insertion remain synchronous, so these repeated checks cover the actual yield boundary without introducing a lock or changing public interfaces.
Related issue number
No existing issue identified. Reproduced against main 6d90d84 (MS-Agent 1.6.0).
Validation
.dev_scripts/webui/oss_distribution.pyand E305 inms_agent/config/skills_manager.py. These files were verified unchanged against HEAD. No unrelated formatter changes are included. Remote CI has not yet run.Checklist