Repository navigation
Conversation
Lancetnik
force-pushed
the
feat/subagent-eventbus-tests
branch
from
October 28, 2026 20:01
b82b271 to
472b86e
Compare
Lancetnik
force-pushed
the
feat/subagent-eventbus-tests
branch
from
October 28, 2026 20:54
472b86e to
482e700
Compare
Lancetnik
marked this pull request as ready for review
October 28, 2026 21:05
Lancetnik
force-pushed
the
feat/subagent-eventbus-tests
branch
from
October 28, 2026 21:14
482e700 to
5ce5853
Compare
Codecov Report❌ Patch coverage is
... and 5 files with indirect coverage changes 🚀 New features to boost your workflow:
|
5 of 6 tasks
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.
Why are these changes needed?
This PR activates observable subagent trees, addressed delivery, cancellation cleanup, and source-event accounting. It removes legacy rollup generation and migrates UI, observers, telemetry, eval, network consumers, and their tests together. Delegation, accounting, HITL, cancellation, and consumer regressions accompany the implementation.
Addressed delivery has one public operation:
event.origin.send(...). Only theStreamHandleandDeliveryErrortypes are added to the existing subagent package exports.send_downand registry lookup/broadcast by task ID, agent name, or subtree are removed.run_task,TaskResult, andDelegationRegistryremain internal and are not re-exported. Registry access is an internal class method, with no global getter. Existingas_toolandsubagent_toolentry points retain their roles. Race and nested-delivery tests obtain live addresses throughevent.origin; provider smoke tests import the runner module directly.Accounting is forwarded as plain
UsageEvent, withoutChildEvent. Existingobserver(UsageEvent, ...)andstream.where(UsageEvent)subscriptions receive original local and descendant costs with the same publication identity, kind, provider, and model. Forwarding preservesevent_id; an explicit new publication creates a fresh ID and clears the inherited live address. Forwarded usage retainsevent.originfor addressed budget interventions, while serialization omits live handles. No rollup is generated.Related issue number
Stack #3525: #3524 (events) → #3523 (variables) → #3526 (routing) → #3527 (documentation) → #3528 (support). No linked issue.
Checks
Current implementation: 7884 passed, 9 skipped, 437 deselected, 2 xfailed in the local standard non-LLM suite. The local run deselects four previously reproduced ACP advertised-address networking cases; no repository skips or CI changes were added. GitHub runs the normal workflow matrix.
Focused regression, accounting, telemetry, eval, and cancellation checks: 100 passed, 3 skipped. Mypy passed on the integration layer (255 source files) and with the strict configuration on the stack tip (259 files). Ruff passed for changed Python files. Relative documentation links and Python snippets were checked. Executable code matches the full-suite snapshot; subsequent source edits changed docstrings only.
The original typed-subscription regression was observed failing (only the root's 10 tokens instead of root + child + grandchild costs of 60), then passing for both observer and stream registration. A second regression verifies replay and republication cannot reuse the old live address. CI is rerunning for the updated heads. Website integration/build was not run locally.
AI assistance
Codex assisted with implementation, tests, documentation, and reorganizing the stack. The public surface, source identity, typed subscriptions, persistence/replay, and direct implementation-module imports were verified against the actual implementation. Delivery tests use event-origin handles rather than accessing the registry or selecting recipients by name. No CI workflows or test skips were added.