Skip to content

fix(eve): preserve receive-only channels - #1271

Open
glucas1103 wants to merge 1 commit into
vercel:mainfrom
glucas1103:fix/receive-only-channel-discovery
Open

fix(eve): preserve receive-only channels#1271
glucas1103 wants to merge 1 commit into
vercel:mainfrom
glucas1103:fix/receive-only-channel-discovery

Conversation

@glucas1103

Copy link
Copy Markdown

Description

Closes #1270.

compileChannelDefinition() currently lowers channels by mapping their routes. A channel with routes: [] and an authored receive hook therefore emits no manifest entry, disappears from the module map, and cannot be resolved by schedules or cross-channel handoffs unless the application invents a placeholder HTTP route.

This change adds a first-class receive-only-channel manifest entry. Receive-only channels remain discoverable and resolvable through the normal authored-module path, appear in eve info and the Vercel agent summary without route metadata, and are excluded from Nitro route registration. The docs, schema versions, runtime types, compiler/runtime coverage, and patch changeset are updated together.

How did you test your changes?

  • pnpm test:unit — 5,462 tests passed, 1 skipped.
  • pnpm test:integration — 550/550 tests passed.
  • pnpm typecheck
  • pnpm docs:check
  • pnpm lint
  • pnpm guard:invariants

PR Checklist

  • I linked an issue with prior discussion confirming this change is wanted
  • I ran the relevant checks from CONTRIBUTING.md
  • I added tests and documentation where relevant
  • I added a changeset if this touches the published eve package
  • DCO sign-off passes for every commit (git commit --signoff)

Signed-off-by: Lucas Gaillard <lucasgaillard@outlook.com>
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@glucas1103 is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

@vercel vercel 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.

Additional Suggestions:

  1. Next.js chat/workflow info validator throws on receive-only channels because it still requires channel.method/channel.urlPath to be strings after the agent-info schema made them nullable.
  1. Receive-only channels cannot be resolved via the route-fingerprint fallback in resolveTargetByReference, so schedules/cross-channel handoffs targeting them throw "not registered" whenever reference identity does not hold.

Fix on Vercel

@glucas1103
glucas1103 marked this pull request as ready for review July 28, 2026 08:35
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.

Receive-only channels disappear from compiled manifests

1 participant