Compare commits

...
Author SHA1 Message Date
Nick Hollon 7505c73243 Revert "Terminate sync stream iterators on stream-end, not on root-terminal lifecycle"
This reverts commit bbc71c398b.
2026-06-02 10:03:39 -04:00
Nick Hollon bbc71c398b Terminate sync stream iterators on stream-end, not on root-terminal lifecycle
The sync stream controller pushed the terminal None sentinel into every subscription queue the instant it saw a root-namespace completed/failed lifecycle event. Any event the server emits after that (e.g. a direct-child subgraph lifecycle/tasks event that feeds thread.subgraphs) was then queued behind the None and never consumed, because iterators return on the first None. This surfaced as thread.subgraphs yielding no direct-child handles for a factory/deep-agent graph on the sync client while the async client worked.

Align the sync controller with the async controller: terminate projection iterators when the shared stream ends (or on interrupt, signaled by the thread-stream), not on a mid-stream root-terminal event. Adds a regression test.
2026-06-01 22:42:33 -04:00

Diff Content Not Available