Skip to content

feat(ag-ui): own private HTTP request lifetimes - #1162

Merged
blove merged 1 commit into
mainfrom
codex/ag-ui-request-ownership
Sep 24, 2026
Merged

blove merged 1 commit into
mainfrom
codex/ag-ui-request-ownership

Conversation

@blove

@blove blove commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

AG-UI's raw SDK stream starts a request eagerly, and unsubscribing alone does not reliably abort it. A broken response can also make the locked SDK rethrow a reader-cancellation rejection after the original failure was already delivered.

Add a private, framework-neutral HTTP request owner that creates a fresh HttpAgent per explicit start. It captures configuration, forwards normalized/verified events without applying SDK state, and settles once with physical close, abort, or failure. Abort and consumer failure detach delivery and cancel the actual request. A request-local response adapter preserves the original read error while containing the SDK's duplicate post-settlement cancellation rejection.

Add mandatory isolated runtime/type CI gates and dependency checks that keep this code out of legacy Angular entry points and reject cross-backend, private SDK, alias and symlink escapes. Public package exports and release configuration are unchanged; domain completion and neutral session integration remain subsequent work.

Validation:

  • 25 private runtime tests, including real HTTP cancellation, reentrancy, overlapping requests and abrupt socket failure; retained negative controls reproduced missing physical abort and unhandled SDK cleanup rejection.
  • 456 legacy AG-UI tests; strict runtime/public types with locked TypeScript 5.9.3; lint (zero errors, existing legacy warnings), build, inventory, boundaries and version consistency.
  • Boundary/policy/workflow/scope and full parity suites; independent compliance and code-quality reviews.
  • Actual deterministic Python provider success/failure/interrupt endpoints through the locked SDK, plus automated Chromium, Chrome MCP and in-app-browser walkthroughs of the private request seam. All 15 browser requests physically closed without uncaught JavaScript errors.

This is private transport infrastructure, not a public AG-UI/React parity or release claim.

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadplane Ready Ready Preview Sep 24, 2026 9:22pm UTC

Request Review

@blove
blove enabled auto-merge (squash) September 24, 2026 21:19

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit d838c60 into main Sep 24, 2026
77 of 78 checks passed

This branch was successfully deployed

1 active deployment
Preview – threadplane — 7b64fcb5 Deployed Sep 24, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant