Operate
← Run and sessions

Incremental refresh

Build on compatible earlier evidence while emitting a complete current result.

Select incremental refresh per task when new data should build on compatible prior results. The task evaluates what is new or unresolved and still emits a complete current structure. If two independent sessions produce different relationships, both session outputs remain observable; one does not overwrite the other.

Choose tasks explicitly

started = workspace.run(
    "news-events",
    "v2",
    incremental_tasks=("group-events", "name-events"),
    max_cost_usd=10.0,
)

Manual runs and scheduled deployments expose the same per-task selection. Select a task only when its meaning is compatible with earlier executions and the current result should include both established and newly ingested data.

What gets reused

Relifold may reuse prior results for the same values or relationships under a compatible task meaning. A renamed source Space does not by itself invalidate that evidence. Changing the prompt's criterion, operator, or relevant task settings may make earlier evidence incompatible.

What the session emits

The refreshed task emits the complete structure for that session, not only a delta. Every row actually emitted is attributed to the current session. Session pages separately report new model calls, cached calls, skipped work, cost, and savings.

Independent sessions coexist

Sessions are observability records, not timestamp-based overwrite rules. If one independent run says A contradicts B and another says A is independent of B, both historical results remain queryable by session. Incremental refresh does not silently replace either record.

Reviews and corrections

A later human correction becomes compatible reviewed evidence for future work, while the historical session remains unchanged. This makes incremental execution auditable without freezing known mistakes forever.