feat(website): add 'We Measured the Runtime Swap' blog post - #905
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Contributor
blove
enabled auto-merge (squash)
September 1, 2026 00:12
The sequel to 'What Changes in Your Angular Code When the Agent Runtime Changes', which ended by conceding that every AG-UI backend in the repo was itself a LangGraph graph. This post reports the measurement: AWS Strands, Microsoft Agent Framework, and Mastra, two languages, real servers, wire transcripts replayed through the shipped client. Messages, tool calls, and state ported with zero adapter changes. Both hard defects were ours — interrupt detection keyed on a bridge convention instead of the protocol outcome (#888), and a LangGraph-shaped resume payload (#889/#891) — and they get the spotlight. Subagents stay red on all three, for three different and defensible upstream reasons. Also adds a three-line editor's note forward link at the previous post's 'What this post cannot tell you' section. That section's headings and its original concession are unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Factual:
- Strands and Microsoft Agent Framework both read the protocol-standard
top-level resume array; only Mastra needs the interruptEvent shape.
Corrected the paragraph and the count ("Four runtimes, three answers").
Verified against strands-resume.request.json and to-agent.ts.
- Name @ag-ui/core 0.0.59 for the subagent events, not a bare version.
Editorial:
- Cut the self-narration lines; state facts plainly instead.
- Retitle the reds and outage sections; close on Conclusion.
- Drop the competing superlative from the final line.
- Trim two honesty declarations that were doing no work.
- Break the longest lines; average prose line 102 -> 82 characters
(predecessor is 84). Four "rather than" constructions converted to
plain sentences.
- Fold the editor's-note label into its first line in the predecessor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
blove
force-pushed
the
blove/matrix-blog-post
branch
from
September 1, 2026 00:13
1d720dd to
2818ec5
Compare
Contributor
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.
Sequel to #884, which ended by conceding that every AG-UI backend in this repo was itself a LangGraph graph — "belief is not measurement." This post is the measurement.
New post:
apps/website/content/blog/2026-08-31-we-measured-the-runtime-swap.mdx— 1,822 words.Beats: the concession → what was actually run (three runtimes, two languages, upstream integrations, live model calls, captured SSE replayed through the pinned client) → the matrix → both real defects were ours (#888 interrupt detection keyed on the
on_interruptbridge convention while Strands and MAF signal only viaRUN_FINISHED.outcome; #889/#891 LangGraph-shaped resume payload) → what stayed red (Strands snapshot-only state; subagents red on all three for three different, defensible upstream reasons) → the deploy finding from #899, told plainly, no hostnames → close on the matrix as a maintained reference with committed fixtures.Also: a three-line editor's-note forward link in #884 at the "What this post cannot tell you" section. No heading changes; the original concession is verbatim.
Deliberately cautious wording: the Mastra interrupt cell is described as verified live in the development harness with its resume round trip covered by transcript tests, and explicitly not production-proven — the production service does not exist yet.
Verified against main, not the plan doc:
reducer.tshandling ofRUN_FINISHED.outcomeand the first-signal-wins rule,to-agent.tsper-provenance resume shapes, the eight fixture files underlibs/ag-ui/fixtures/runtime-transcripts/and the specs that replay them, theSUBAGENT_*members of@ag-ui/core@0.0.59, the threecockpit/runtimes/directories, the Strands state-hook caveat in its own example, and the #899 commit.Voice: zero contractions, zero "Let's", zero emoji, zero prose lines with 3+ sentences. Zero shared 8-grams with #884 and with the docs matrix page (#904) outside frontmatter boilerplate.
npx vitest run --config vite.config.mtsinapps/website: 389 passed. Dev-server render checked at 200 for the new post, the edited post, and the linked docs page; table renders in the scroll container; links resolve.🤖 Generated with Claude Code