Recency phase
Understand Sonar’s global forward-only cutoff for phase-gated work.
The recency phase is Sonar's single global, forward-only cutoff for deciding which program and scope records count as current enough for phase-gated work.
Definition
Sonar stores one timestamp, phase_started_at. A record passes a phase-gated query when its
updated_at is on or after that timestamp.
Advancing the phase can only move the cutoff forward. A request to move it backward or keep it at the same timestamp is ignored, so stale data cannot become globally current by accident.
What refreshes a record
Crawlers and other successful upserts stamp updated_at = NOW() on records they observe. Active
programs and scopes therefore remain above a later cutoff; records no longer observed eventually
age out.
Call this a crawl refresh or asset refresh. Worker liveness uses a different mechanism: a worker pulse.
Consumers
- Recent program and scope views use the cutoff.
- AI resolution considers programs with a valid scope refreshed after the cutoff.
- Workflow SQL can bind
{PHASE_STARTED_AT}to apply the same global boundary.
An individual read tool's updatedAfter filter is not a second global phase. It is a caller-chosen
query filter for recently changed assets.
Non-guarantees
- Recency means “observed or updated after the cutoff,” not “verified safe” or “recently scanned by every workflow.”
- Seeded programs without a recurring crawl refresh can age out intentionally.
- Advancing the phase does not delete older records; it changes eligibility for phase-gated work.