Statuses
Every signal is in exactly one of these states.
Use disable when you want to pause a signal you might bring back. Use deprecate when you’re retiring it for good.
Observations are never deleted by a status change. Disabling a signal stops it finding new matches; everything it already found stays on your deals.
What the app calls these
The statuses above are the ones the MCP contract uses. The status pill on a signal card in the app uses shorter labels:
So a signal these docs call “disabled” reads as Inactive on the Manage Signals tab. Nothing differs underneath; only the label is shorter.
Transitions
Versions and concurrent edits
Each signal carries a version and a revision identifier that looks likemy-signal-key:1. When you change a signal, you pass the revision you expect it to be at, and the change is rejected if someone else has edited it in the meantime.
If you hit a revision conflict, re-list the signal to get its current state and try again. Don’t force past it without looking at what changed.
Backfill
Activating a signal only affects artifacts ingested from that point forward. A backfill runs it across artifacts you already have. Every backfill must be bounded. You must give a time window, an artifact cap, or both.Watching progress
Listing your signals reports three counts per signal:- Eligible artifacts — how many artifacts match the signal’s document types
- Completed artifacts — how many have been evaluated
- Observations — how many matches have been found

