feat(ag-ui): host runtimes on Railway via ag-ui-dev deployment#580
Open
blove wants to merge 15 commits into
Open
feat(ag-ui): host runtimes on Railway via ag-ui-dev deployment#580blove wants to merge 15 commits into
blove wants to merge 15 commits into
Conversation
Spec for hosting the AG-UI FastAPI runtimes on Railway so the cockpit "Run" tab can reach them. Mirrors the langgraph deployment pattern (generated multi-topic app + drift-checked CI), adds defense-in-depth (Vercel edge origin + rate limit + internal token, Railway middleware, OpenAI spend cap) above the langgraph proxy's current posture. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pit pattern Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
cpSync was copying project.json into deployments/ag-ui-dev/deps/<topic>/, which made nx see duplicate project definitions (e.g. cockpit-ag-ui-interrupts-python defined in both cockpit/ag-ui/.../python and deployments/.../deps/interrupts). Broke `nx show projects --affected` and the CI scope job downstream. Filter project.json + tsconfig*.json out of the cpSync. Regenerate to drop the stale copies under deps/. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
deployments/ag-ui-dev/Railway deployment hosting everycockpit/ag-ui/*/python/topic at/agent/<topic>from one FastAPI app.scripts/generate-ag-ui-deployment-config.ts(mirrorsscripts/generate-shared-deployment-config.ts); CI drift-checksdeployments/ag-ui-dev/.X-Internal-Tokeninjection) on each ag-ui example; Railway FastAPI middleware verifies the same token; OpenAI project hard cap is the final backstop./ok; production smoke tests probe it + the two examples routes.Spec:
docs/superpowers/specs/2026-06-05-ag-ui-railway-deployment-design.mdPlan:
docs/superpowers/plans/2026-06-05-ag-ui-railway-deployment.mdArchitecture
Pre-flight required before merge
These cloud-side steps must be done by a human before the deploy workflow can succeed (none are code changes):
AG_UI_INTERNAL_TOKENviaopenssl rand -hex 32ag-ui-dev, generate domain, project token → GitHub secretRAILWAY_TOKENOPENAI_API_KEY,AG_UI_INTERNAL_TOKEN,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKENAG_UI_INTERNAL_TOKEN+UPSTASH_*vars on both Vercel projects (cockpit-ag-ui-interrupts-angular,cockpit-ag-ui-streaming-angular)Test plan
railway upfromdeployments/ag-ui-dev/succeeds;curl https://ag-ui-dev.up.railway.app/okreturns{"ok":true};curl https://ag-ui-dev.up.railway.app/agent/interruptswithout token returns 401.Deploy AG-UI Railwayworkflow fires on push to main, runs drift check +railway up.apps/cockpit/e2e/production-smoke.spec.tsdescribe block "ag-ui Railway runtime").cockpit.threadplane.ai/ag-ui/interrupts/...Run tab, trigger an approval interrupt, confirm refund flow completes end-to-end against the Railway backend.🤖 Generated with Claude Code