25 Commits

Author SHA1 Message Date
Jacob Alber
41e7e85c40
fix: Improve PublishMessageAsync resilience (#5923)
During the recent fix to SendMessageAsync's recurrence, we added code to ensure blocking on Publish. This adds additional resilience to the Publish delivery, ensuring that every subscribed agent receives the message, regardless of errors in the middle.
2025-03-13 16:53:21 -04:00
Jacob Alber
0a988b6393
fix: Recurrent SendMessageAsync deadlock in message handler (#5916)
In the .NET InProcessRuntime we tried to minimize the amount of tasks
created. Unfortunately, this results in a deadlock when a send message
handler is attempting to SendMessage during the handling of the incoming
message.

The fix is to create a new task for delivering the message in the
message processing loop, which creates a new logical stack to run the
delivery, freeing the loop to process the next delivery request.

* Also fixes passing exceptions and cancellations back to the waiting
task.
* Also fixes a build slowdown on Windows due to uv and llama-cpp

Closes #5915
2025-03-12 14:58:07 -04:00
Jack Gerrits
181925c95d
[dotnet] Add mixin for easier state save/load apis (#5438)
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-02-24 16:24:30 +00:00
Jack Gerrits
362d6a4e6b
Use a root json element instead of dict (#5430) 2025-02-07 11:52:37 -05:00
Griffin Bassman
c8e4ad8242
feat: save/load test for dotnet agents (#5284) 2025-02-06 17:09:26 -05:00
Griffin Bassman
da6f918708
feat: add dotnet code coverage (#5403) 2025-02-06 14:30:15 -05:00
Griffin Bassman
442df18397
feat: dotnet runtime tests (#5342) 2025-02-05 13:02:43 -05:00
Jack Gerrits
08f9830bf7
Dotnet Grpc worker implementation (#5245)
Co-authored-by: Jacob Alber <jaalber@microsoft.com>
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-02-05 08:34:02 -08:00
Griffin Bassman
9af6883fbe
fix: dotnet test CI and standardize test categories (#5286)
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-02-03 11:49:08 -05:00
Griffin Bassman
994c8660df
fix: add unit tests for dotnet and improve test infrastructure (#5269) 2025-01-30 16:53:42 -05:00
Griffin Bassman
fca1de9279
feat: dotnet AgentId and MetaData tests (#5271) 2025-01-30 15:02:44 -05:00
Griffin Bassman
850377c74a
fix: Various fixes and cleanups to dotnet autogen core (#5242)
Co-authored-by: Jack Gerrits <jack@jackgerrits.com>
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-01-28 17:13:36 -05:00
Jacob Alber
43e9c266c1
feat: Enable queueing and step mode in InProcessRuntime (#5239)
Moves the semantics of message delivery in .NET to be closer to Python
(up to vagaries of differences in Threading)

* Creates a message delivery queue in InProcessRuntime
* Creates Start/Stop/WaitForIdle APIs on InProcessRuntime
* Creates API to step individual messages
* Updates InProcessRuntime to play well with IHost as an IHostedService
2025-01-28 20:28:05 +00:00
Jack Gerrits
caa33124bf remove unported things from the solution
formatting
2025-01-28 09:24:16 -05:00
Jacob Alber
d9e0013975 feat: Implement mechanism to abstract over IHandle implementations 2025-01-28 09:24:16 -05:00
Jack Gerrits
d48b54fcaf rename Handle to HandleAsync 2025-01-28 09:24:16 -05:00
Jack Gerrits
0b850fdbdb add unsub test 2025-01-28 09:24:16 -05:00
Jack Gerrits
e15b449c16 fix test agent 2025-01-28 09:24:16 -05:00
Jack Gerrits
b16b94feb8 WIP, moved to base namespace 2025-01-28 09:24:16 -05:00
Jack Gerrits
b19374e81d first tests 2025-01-28 09:24:16 -05:00
Jacob Alber
537277554e test: Add test for topic-based delivery 2025-01-28 09:24:16 -05:00
Ryan Sweet
92941c6d70
Rysweet 5217 add send message (#5219)
this is work to align dotnet autogen with python

## Why are these changes needed?

bringing alignment between the projects

## Related issue number

close #5217 

## Checks

- [ ] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [x ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
2025-01-27 10:14:07 -05:00
Ryan Sweet
0aed066728
Rysweet 5207 net runtime interface to match python add registration to interface and inmemoryruntime (#5215)
* add Registry abstractions and Registry Storage to Core/Contracts
* brings Grpc in line with these abstractions
* add registeragenttype to in memory runtime. Note it's not necessary to
call this because we register all the agents with reflection unless you
tell the runtime not to.....

## Why are these changes needed?

Bringing the .NET more in line with the python

## Related issue number

close #5207 

## Checks

- [] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [x ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [x] I've made sure all auto checks have passed.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-01-27 09:44:39 -05:00
Ryan Sweet
10e40b5a1f
Rysweet 5201 refactor runtime interface (#5204)
Changes to align the .NET code more with the python codebase. 
* rename *Worker to *Runtime
* refactor shared runtime elements to AgentRuntimeBase
* align runtime interface with python

## Why are these changes needed?

Aligning the .NET with the python code and then we can evolve together
from there.

## Related issue number

Closes #5201
2025-01-26 08:09:59 -08:00
Ryan Sweet
b6597fdd24
rysweet-unsubscribe-and-agent-tests-4744 (#4920)
* add tests for core functionality and client/server
* add remove subscription, get subscriptions
* fix LOTS of bugs
* add grpc tuning
* adapt to latest agreed agents_worker proto changes.
2025-01-24 19:24:00 -08:00