Skip to main content

NotificationPreferences

Struct NotificationPreferences 

Source
pub struct NotificationPreferences {
    pub enabled: bool,
    pub on_clarification: bool,
    pub on_tool_approval: bool,
    pub on_context_pressure: bool,
    pub on_subagent_complete: bool,
    pub on_background_task_complete: bool,
    pub on_run_complete: bool,
    pub on_run_failed: bool,
}
Expand description

Per-user notification opt-in flags.

enabled is the master switch; when false, no notifications are produced regardless of the per-category flags. Each per-category flag gates a single notification category.

Every field defaults to true (via serde(default = ...)), so missing keys in a partial JSON document are treated as opted-in.

§Whole-struct-PUT caveat

The server’s PUT /api/v1/notifications/preferences endpoint deserializes this struct directly and replaces the persisted value wholesale — it is not a per-field patch. This has always meant that a client holding a stale in-memory copy (fetched before some field existed, or simply never refreshed) will silently reset any field it doesn’t know about back to its serde(default) on its next save, clobbering whatever the user previously chose for it. This applies equally to every field below, including the two most recently added (on_run_complete, on_run_failed); frontends must always PUT back a full, freshly-fetched copy rather than a hand-built partial one.

Fields§

§enabled: bool

Master switch. When false, nothing is ever notified.

§on_clarification: bool

Notify when the agent needs free-form clarification from the user.

§on_tool_approval: bool

Notify when a tool requires explicit user approval.

§on_context_pressure: bool

Notify when context usage reaches a critical level.

§on_subagent_complete: bool

Notify when a background sub-agent task completes.

§on_background_task_complete: bool

Notify when a background shell/command (Bash run_in_background) finishes.

§on_run_complete: bool

Notify when a run finishes successfully (AgentEvent::Complete).

§on_run_failed: bool

Notify when a run fails (AgentEvent::Error).

Implementations§

Source§

impl NotificationPreferences

Source

pub fn load(path: &Path) -> Self

Loads preferences from path.

Returns Default when the file is missing (a fresh install) so the caller never has to special-case first run. A file that exists but fails to parse is logged via tracing::warn and also falls back to Default, so a corrupt file never disables notifications silently.

Source

pub fn save(&self, path: &Path) -> Result<()>

Persists preferences to path as pretty JSON.

Creates the parent directory if it does not yet exist.

Trait Implementations§

Source§

impl Clone for NotificationPreferences

Source§

fn clone(&self) -> NotificationPreferences

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NotificationPreferences

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for NotificationPreferences

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for NotificationPreferences

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for NotificationPreferences

Source§

fn eq(&self, other: &NotificationPreferences) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for NotificationPreferences

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for NotificationPreferences

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more