[codex] Surface workflow backend deprecation notices in clients#2230
[codex] Surface workflow backend deprecation notices in clients#2230pranaygp wants to merge 3 commits into
Conversation
🦋 Changeset detectedLatest commit: 70b0d44 The changes in this PR will be included in the next version bump. This PR includes changesets to release 20 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📊 Benchmark Results
workflow with no steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 1 step💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 10 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 25 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 50 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.all with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.all with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.all with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.race with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.race with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Promise.race with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 10 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 25 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 50 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 10 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 25 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) workflow with 50 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) Stream Benchmarks (includes TTFB metrics)workflow with stream💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) stream pipeline with 5 transform steps (1MB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) 10 parallel streams (1MB each)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) fan-out fan-in 10 streams (1MB each)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) SummaryFastest Framework by WorldWinner determined by most benchmark wins
Fastest World by FrameworkWinner determined by most benchmark wins
Column Definitions
Worlds:
❌ Some benchmark jobs failed:
Check the workflow run for details. |
🧪 E2E Test Results❌ Some tests failed Summary
❌ Failed Tests▲ Vercel Production (2 failed)express (2 failed):
📋 Other (1 failed)e2e-local-dev-nest-stable (1 failed):
Details by Category❌ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
❌ 📋 Other
❌ Some E2E test jobs failed:
Check the workflow run for details. |
| ### events.listByCorrelationId() | ||
|
|
||
| List events that share a correlation ID, useful for tracing related events across runs. | ||
| List events that share a correlation ID. Supply `runId` when inspecting one run so backends can use the canonical run-scoped query. |
There was a problem hiding this comment.
Users shouldn't have to make decisions based on knowing backend internals
|
|
||
| `world.events.listByCorrelationId()` accepts an optional `runId` to limit | ||
| matching events to a single workflow run while preserving unscoped queries for | ||
| backends and callers that need cross-run results. |
There was a problem hiding this comment.
It's impossible to get cross-run results when using a correlationId, since they're unique per run, right? This doesn't make sense to me
Summary
@workflow/world-vercel, parsing standard lifecycle headers with legacyX-API-*fallbackonDeprecation, including removed-endpoint handling withWORKFLOW_SERVER_ENDPOINT_SUNSETrunIdcorrelation scoping across world implementations and migrate the web lookup away from the deprecated unscoped endpointWhy
This gives upgraded workflow clients actionable deprecation feedback without changing workflow-server response bodies for existing SDK versions. It pairs with workflow-server#471, which supplies the lifecycle headers and canonical run-scoped correlation endpoint.
Verification
pnpm --filter @workflow/world-vercel typecheckpnpm --filter @workflow/world-vercel exec vitest run src/utils.test.ts src/events.test.ts src/streamer.test.ts src/refs.test.ts(41 tests passed)pnpm --filter @workflow/world-local typecheck && pnpm --filter @workflow/world-local test(366 tests passed)pnpm --filter @workflow/world-postgres typecheck && pnpm --filter @workflow/world-postgres test(112 tests passed)pnpm --filter @workflow/web test -- app/lib/deprecation-context.test.tsx app/lib/client/workflow-streams.test.ts(web suite: 78 tests passed)pnpm exec vitest run packages/cli/src/lib/inspect/setup.test.ts(2 tests passed)pnpm --filter @workflow/docs-typecheck exec vitest run src/__tests__/docs.test.ts -t 'packages/world-vercel/README.md'(new README sample passed)git diff --checkScreenshot
Rendered locally using representative workflow backend lifecycle headers.