Skip to main content
A signal is a telemetry envelope that says how a release is going. The spec still defines four kinds: health, error, metric, and outcome. Capture uses type: "signal" on POST /v1/capture.
The SDK signals namespace (recordHealth, recordError, recordMetric, recordOutcome) was removed in v1 (ADR-0010). conformance/surface/control-points.surface.json asserts the client must not expose signals. There is no replacement call on the client. See Migrate 2.1 to 2.3.

Why the concept still matters

Evaluation says what value was chosen. Signals say what happened next — a component is degraded, an error you already classified, a numeric observation, or a user-visible result. An outcome is a signal kind, not its own product object and not a separate docs page. Completing a release and recording an application outcome (checkout completed) are different platform facts. Neither is an SDK method in v1. These are not the in-app Log / Alert / Block severities.

How it relates

What replaced the client API

Nothing on the client. If your 2.1 code called signals.recordHealth / recordError / recordMetric / recordOutcome, delete those calls. Report health, errors, and outcomes through the observability tools you already run. Do not invent a Fireweave client helper to replace the cut namespace.
Last modified on September 11, 2026