v4.6.0
Events feed: source + type filters (app-events lane cascade)
The gateway's project events feed now carries an app-emitted lane (source: "app" — business facts your deployed code records via @run402/functions@3.9.0's new events.emit()). This release teaches every client surface to filter it:
- SDK:
events.list({ source?: "app" | "platform", eventType?: string | string[] })on project- and org-scoped listings. - CLI:
run402 events --source app|platform --type name[,name]—--helpteaches the app/platform dichotomy (consumers key on(source, event_type)). - MCP:
list_project_eventsgains the same optional filters.
Status-code correction: 402 is payment-challenges-only
The gateway migrated its remaining non-payment 402s to 403 (codes unchanged): quota (QUOTA_EXCEEDED), tier caps (TIER_LIMIT_EXCEEDED), paid-function insufficient_allowance, and delegate spend caps. Client docs/tests updated accordingly; the MCP lifecycle-grace guidance now fires on 403 (it was dead code gated on 402). Genuine x402 payment challenges keep 402. If your scripts assert literal 402 on quota paths, update them to branch on the error code instead.
Tracking: #497 · gateway change app-events-emit-lane (deployed + live-verified today)