Goal
Establish a consistent tool-execution result contract across Relay.
Tool results should contain the application-visible result together with optional opaque annotation metadata. The contract should behave consistently across in-process, worker, and native plugin surfaces.
Expected behavior
- Tool-result annotations remain separate from the application-visible result.
- Middleware can preserve, replace, or remove annotations.
- Security and observability components can process the result and annotation independently.
- Existing continuation, error, short-circuit, and pending-mark behavior remains consistent.
- Incompatible plugin and Relay versions are rejected with clear migration guidance.
Compatibility
This introduces a breaking semantic contract for tool-execution results. The change must have a documented Relay compatibility boundary, migration guidance, and coverage across all supported plugin surfaces.
Acceptance criteria
- All tool-execution paths use the standardized result contract.
- Result and annotation behavior is consistent across plugin boundaries.
- Sanitization and export behavior are tested independently.
- Compatibility validation prevents mixing legacy and standardized result semantics.
- The migration and compatibility expectations are documented.
Goal
Establish a consistent tool-execution result contract across Relay.
Tool results should contain the application-visible result together with optional opaque annotation metadata. The contract should behave consistently across in-process, worker, and native plugin surfaces.
Expected behavior
Compatibility
This introduces a breaking semantic contract for tool-execution results. The change must have a documented Relay compatibility boundary, migration guidance, and coverage across all supported plugin surfaces.
Acceptance criteria