Astrixion Docs

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.

older records          phase cutoff                 current records
───────────────┬─────────────│──────────────────────────────▶ time
               │             │
               └─ excluded   └─ eligible

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.

On this page