pub struct LogFilter {
pub since_ts: Option<String>,
pub until_ts: Option<String>,
pub until_id: Option<String>,
pub action: Option<String>,
pub category: Option<String>,
pub outcome: Option<String>,
pub severity_min: Option<u8>,
pub trace_id: Option<String>,
pub q: Option<String>,
pub hide_internal: bool,
pub field_eq: BTreeMap<String, String>,
}Expand description
Filter parameters for load_page. Each field is independent; an
event must match ALL provided constraints to be included.
Per-attribution-field equality filters live in Self::field_eq:
keys are any zeroclaw.* attribution name (e.g. "agent_alias",
"channel", "channel_type", "risk_profile", "model_provider").
Adding a new attribution field anywhere in the schema requires no
changes here — the filter looks it up dynamically.
Fields§
§since_ts: Option<String>RFC 3339 lower bound (inclusive).
until_ts: Option<String>RFC 3339 upper bound (exclusive — used by pagination cursor).
until_id: Option<String>Match against the cursor’s id when until_ts ties.
action: Option<String>Match exact event.action (case-insensitive).
category: Option<String>Match exact event.category (case-insensitive).
outcome: Option<String>Match exact event.outcome (case-insensitive).
severity_min: Option<u8>Minimum severity_number.
trace_id: Option<String>Match exact trace_id.
q: Option<String>Substring search across message + attributes.
hide_internal: boolHide events with event.category == “internal” by default.
field_eq: BTreeMap<String, String>Per-attribution-field exact-match constraints. Key is any
zeroclaw.* attribution name. Empty map = no attribution filter.