Skip to content

Prove shared LangGraph runtime through Angular and React - #1116

Merged
blove merged 3 commits into
mainfrom
codex/shared-runtime-quality
Sep 22, 2026
Merged

blove merged 3 commits into
mainfrom
codex/shared-runtime-quality

Conversation

@blove

@blove blove commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

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 for e1da2bd10d0f009924eeb2ea67203da92d71cd0b, including CI — required. Merged through the normal protected squash endpoint as bf48ca56691c17f98ec6a9af5defe3ac0aca55ef; 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.

  • Deterministic Node runtime tests cover projection, snapshot identity, ownership races, recovery, tool claims, continuation, and settlement.
  • Core and both native bindings have strict source and installed declaration checks, including inferred tool unions and deeply readonly negative assertions.
  • Production package scans and isolated tarball consumers verify dependency boundaries and exclude test implementations.
  • Both real framework apps run the same seven HTTP/SSE browser scenarios, with six run requests and one tool handler per framework.
  • CI runs these gates, installs Chromium with system dependencies, and supports stacked PR bases while retaining production deployment guards.

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.

@vercel

vercel Bot commented Sep 21, 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 22, 2026 1:51am UTC

Request Review

@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 21, 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 marked this pull request as ready for review September 21, 2026 23:26

@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 21, 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 marked this pull request as draft September 21, 2026 23:27
@blove
blove marked this pull request as ready for review September 21, 2026 23:50

@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 21, 2026

Copy link
Copy Markdown
Contributor

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


I'll analyze this and get back to you.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 High severity

Open (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.

Comment thread scripts/react-parity/runtime-consumer.mjs
@blove
blove changed the base branch from codex/react-support-baseline to main September 22, 2026 01:43
@github-actions

github-actions Bot commented Sep 22, 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 enabled auto-merge September 22, 2026 01:43
@blove
blove merged commit bf48ca5 into main Sep 22, 2026
77 checks passed

This branch was successfully deployed

1 active deployment
Preview – threadplane e1da2bd1 Deployed Sep 22, 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.

2 participants