AgentSessionManager.Persistence.RetentionPolicy (AgentSessionManager v0.8.0)

Copy Markdown View Source

Configurable rules for session and event lifecycle management.

Usage

policy = RetentionPolicy.new(
  max_completed_session_age_days: 90,
  hard_delete_after_days: 30,
  max_events_per_session: 10_000
)

:ok = RetentionPolicy.validate(policy)

Summary

Functions

Builds a policy from keyword options.

Validates a policy for internal consistency.

Types

t()

@type t() :: %AgentSessionManager.Persistence.RetentionPolicy{
  archive_before_prune: boolean(),
  archive_store: GenServer.server() | nil,
  batch_size: pos_integer(),
  exempt_statuses: [atom()],
  exempt_tags: [String.t()],
  hard_delete_after_days: pos_integer() | :infinity,
  max_completed_session_age_days: pos_integer() | :infinity,
  max_events_per_session: pos_integer() | :infinity,
  max_session_age_days: pos_integer() | :infinity,
  max_total_events: pos_integer() | :infinity,
  prune_event_types_first: [atom()]
}

Functions

new(opts \\ [])

@spec new(keyword()) :: t()

Builds a policy from keyword options.

Any options not provided use defaults from AgentSessionManager.Config.

validate(policy)

@spec validate(t()) :: :ok | {:error, String.t()}

Validates a policy for internal consistency.

Returns :ok or {:error, reason}.