Prove shared LangGraph runtime through Angular and React - #1116
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
blove
marked this pull request as ready for review
September 21, 2026 23:26
Contributor
blove
marked this pull request as draft
September 21, 2026 23:27
blove
marked this pull request as ready for review
September 21, 2026 23:50
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The runtime consumer records invalid requests before validating them, causing the committed negative test to fail.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
What changed in this PR
Proves a shared LangGraph runtime through Angular and React bindings, including streaming, tools, recovery, cancellation, and installed-consumer verification.
Changes:
- Adds shared core contracts and typed function tools.
- Implements runtime projection, ownership, transport, recovery, and settlement.
- Adds Angular/React bindings, fixtures, package checks, and CI coverage.
- Fixes needed: validate runtime fixture requests before recording them.
| File | Description |
|---|---|
scripts/react-parity/verify-packages.spec.mjs |
Package verification tests |
scripts/react-parity/verify-packages.mjs |
Package verification |
scripts/react-parity/verify-boundaries.spec.mjs |
Boundary tests |
scripts/react-parity/verify-boundaries.mjs |
Boundary verification |
scripts/react-parity/verify-angular-package.spec.mjs |
Angular package tests |
scripts/react-parity/verify-angular-package.mjs |
Angular package verification |
scripts/react-parity/runtime-consumer.spec.mjs |
Runtime consumer tests |
scripts/react-parity/runtime-consumer.mjs |
Runtime consumer server and scenarios |
scripts/react-parity/runtime-config.spec.mjs |
Runtime configuration tests |
scripts/react-parity/package-policy.mjs |
Package boundary policy |
scripts/ci-workflow.spec.mjs |
CI workflow tests |
scripts/ci-scope.spec.mjs |
CI scope tests |
package-lock.json |
Dependency lockfile updates |
libs/react/vite.config.mts |
React build configuration |
libs/react/tsconfig.spec.json |
React test configuration |
libs/react/src/use-agent.type-test.ts |
React type tests |
libs/react/src/use-agent.ts |
React agent hook |
libs/react/src/use-agent.spec.tsx |
React hook tests |
libs/react/src/index.ts |
React exports |
libs/react/README.md |
React package documentation |
libs/react/package.json |
React package metadata |
libs/langgraph/vite.runtime.config.mts |
Runtime test configuration |
libs/langgraph/vite.config.mts |
LangGraph build configuration |
libs/langgraph/tsconfig.runtime-tests.json |
Runtime test TypeScript configuration |
libs/langgraph/tsconfig.lib.prod.json |
Production TypeScript configuration |
libs/langgraph/tsconfig.lib.json |
Library TypeScript configuration |
libs/langgraph/src/runtime/transport.types.ts |
Runtime transport types |
libs/langgraph/src/runtime/tool-settlement.spec.ts |
Tool settlement tests |
libs/langgraph/src/runtime/testing/deferred.ts |
Deferred test helper |
libs/langgraph/src/runtime/testing/controlled-transport.ts |
Controlled transport test helper |
libs/langgraph/src/runtime/testing/binding-fixture.ts |
Binding test fixture |
libs/langgraph/src/runtime/stream-projection.ts |
Stream projection |
libs/langgraph/src/runtime/stream-projection.spec.ts |
Stream projection tests |
libs/langgraph/src/runtime/recovery.spec.ts |
Recovery tests |
libs/langgraph/src/runtime/publication.ts |
Snapshot publication |
libs/langgraph/src/runtime/publication.spec.ts |
Publication tests |
libs/langgraph/src/runtime/ownership.ts |
Operation ownership |
libs/langgraph/src/runtime/operation-errors.ts |
Operation errors |
libs/langgraph/src/runtime/message-reducer.ts |
Message reduction |
libs/langgraph/src/runtime/message-reducer.spec.ts |
Message reducer tests |
libs/langgraph/src/runtime/harness.spec.ts |
Runtime harness tests |
libs/langgraph/src/runtime/function-tools.type-test.ts |
Runtime tool type tests |
libs/langgraph/src/runtime/function-tools.ts |
Runtime function tools |
libs/langgraph/src/lib/transport/transport.interface.ts |
Transport interface |
libs/langgraph/src/lib/transport/fetch-stream.transport.ts |
Fetch stream transport |
libs/langgraph/src/lib/transport/fetch-stream.transport.spec.ts |
Transport tests |
libs/langgraph/src/lib/runtime-operation-reporter.ts |
Operation reporting |
libs/langgraph/src/lib/client/create-langgraph-client.ts |
LangGraph client creation |
libs/langgraph/src/lib/agent.types.ts |
Agent type exports |
libs/langgraph/project.json |
Project targets |
libs/langgraph/eslint.config.mjs |
Lint configuration |
libs/core/vite.config.mts |
Core build configuration |
libs/core/tsconfig.json |
Core TypeScript configuration |
libs/core/src/tools/index.ts |
Tool exports |
libs/core/src/tools/function-tool.type-test.ts |
Function tool type tests |
libs/core/src/tools/function-tool.ts |
Function tool contracts |
libs/core/src/tools/execution-context.ts |
Tool execution context |
libs/core/src/index.ts |
Core exports |
libs/core/src/contracts/tool.ts |
Tool contracts |
libs/core/src/contracts/message.ts |
Message contracts |
libs/core/src/contracts/error.ts |
Error contracts |
libs/core/src/contracts/delivery.ts |
Delivery contracts |
libs/core/src/contracts/contracts.type-test.ts |
Contract type tests |
libs/core/src/contracts/contracts.spec.ts |
Contract tests |
libs/core/src/contracts/agent-snapshot.ts |
Agent snapshots |
libs/core/src/contracts/agent-session.ts |
Agent sessions |
libs/core/README.md |
Core documentation |
libs/core/package.json |
Core package metadata |
libs/angular/vite.config.mts |
Angular build configuration |
libs/angular/tsconfig.spec.json |
Angular test configuration |
libs/angular/src/test-setup.ts |
Angular test setup |
libs/angular/src/public-api.ts |
Angular public exports |
libs/angular/src/observe-agent.type-test.ts |
Angular type tests |
libs/angular/src/observe-agent.ts |
Angular observation binding |
libs/angular/src/observe-agent.spec.ts |
Angular binding tests |
libs/angular/README.md |
Angular documentation |
libs/angular/package.json |
Angular package metadata |
fixtures/react-parity/runtime/vite.config.mts |
Runtime fixture configuration |
fixtures/react-parity/runtime/scenarios.ts |
Browser scenarios |
fixtures/react-parity/runtime/runtime-entry.ts |
Runtime fixture entrypoint |
fixtures/react-parity/runtime/README.md |
Runtime fixture documentation |
fixtures/react-parity/runtime/react-app.tsx |
React fixture app |
fixtures/react-parity/runtime/installed-types.ts |
Installed package type checks |
fixtures/react-parity/runtime/angular-app.ts |
Angular fixture app |
fixtures/react-parity/README.md |
Fixture documentation |
fixtures/react-parity/consumers/angular/src/main.ts |
Angular consumer entrypoint |
apps/website/content/docs/langgraph/api/api-docs.json |
Generated API documentation |
.github/workflows/ci.yml |
CI verification workflow |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
This branch was successfully 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.

This proves one shared LangGraph text and function-tool execution path through native Angular and React bindings. An app-owned session drives both frameworks from cached immutable snapshots; mounting and unmounting observers does not start or cancel work. The installed production consumers exercise text, a real tool result continuation, protected errors, incremental SSE updates, cancellation, reuse, and explicit disposal.
The runtime separates pure message projection from execution ownership. It guards asynchronous work against stop, supersession, and disposal, preserves claim/record ordering and staged tool results, and reconciles uncertain outcomes through read-only history checks. Its default SDK transport does not retry run-creation POSTs after uncertain failures; callers can explicitly opt into SDK retries. Authoritative corrections remove obsolete pending tool calls before any handler or claim runs. Core provides dependency-free contracts and authored TypeScript tool inference; the native packages contain the observation bindings. No schema DSL or automatic argument validation is introduced.
Foundation PR #1114 is merged; this PR now targets main. The new packages remain private, and the neutral LangGraph session is a private development seam staged into the test consumers. The existing LangGraph root remains Angular. Full component parity, SSR, and calibrated performance budgets are outside this increment.
Verification
The prior CI run passed all 67 jobs for
0001cd62e53966f6496da0be94017070e75f16bc, including the Linux/Node 22 library lane and required aggregate check. Fresh integration CI also passed fore1da2bd10d0f009924eeb2ea67203da92d71cd0b, includingCI — required. Merged through the normal protected squash endpoint asbf48ca56691c17f98ec6a9af5defe3ac0aca55ef; the merge tree exactly matches that verified head. The library logs confirm 156 runtime tests and seven installed browser scenarios per framework.The committed runtime evidence records the exact local commands, source provenance, results, and limits. Consumer instructions reproduce the installed-package browser checks.
Copilot reviewed the runtime implementation. Its one fixture finding was checked against the route guard and a fresh six-test run; the reported failure did not reproduce. The review thread records the evidence and is resolved.