corvix.actions

Action execution for matched rules.

Classes

MarkReadGateway

Gateway interface for marking notification threads as read.

DismissGateway

Gateway interface for dismissing (deleting) notification threads.

ActionExecutionResult

Summary of actions taken on one notification.

ActionExecutionContext

Bundles all execution dependencies for execute_actions().

_ActionHandler

Strategy interface for a single action type.

_MarkReadHandler

Handles the mark_read action.

_DismissHandler

Handles the dismiss action.

Functions

execute_actions(→ ActionExecutionResult)

Execute configured actions against a notification.

Module Contents

class corvix.actions.MarkReadGateway[source][source]

Bases: Protocol

Gateway interface for marking notification threads as read.

mark_thread_read(thread_id: str) None[source][source]

Mark a thread as read.

class corvix.actions.DismissGateway[source][source]

Bases: Protocol

Gateway interface for dismissing (deleting) notification threads.

dismiss_thread(thread_id: str) None[source][source]

Dismiss a thread from the inbox permanently.

class corvix.actions.ActionExecutionResult[source][source]

Summary of actions taken on one notification.

actions_taken: list[str] = [][source][source]
errors: list[str] = [][source][source]
class corvix.actions.ActionExecutionContext[source][source]

Bundles all execution dependencies for execute_actions().

Attributes:

gateway: Must implement MarkReadGateway. apply_actions: If False actions are recorded as dry-run only. dismiss_gateway: Must implement DismissGateway; required for dismiss actions. record: The associated NotificationRecord used for dismiss state tracking.

gateway: MarkReadGateway[source][source]
apply_actions: bool = False[source][source]
dismiss_gateway: DismissGateway | None = None[source][source]
record: corvix.domain.NotificationRecord | None = None[source][source]
class corvix.actions._ActionHandler[source][source]

Bases: Protocol

Strategy interface for a single action type.

execute(notification: corvix.domain.Notification, result: ActionExecutionResult) None[source][source]

Execute the action, mutating result in place.

class corvix.actions._MarkReadHandler(gateway: MarkReadGateway, apply_actions: bool)[source][source]

Handles the mark_read action.

_gateway[source][source]
_apply_actions[source][source]
execute(notification: corvix.domain.Notification, result: ActionExecutionResult) None[source][source]
class corvix.actions._DismissHandler(gateway: DismissGateway | None, apply_actions: bool, record: corvix.domain.NotificationRecord | None)[source][source]

Handles the dismiss action.

_gateway[source][source]
_apply_actions[source][source]
_record[source][source]
execute(notification: corvix.domain.Notification, result: ActionExecutionResult) None[source][source]
corvix.actions.execute_actions(notification: corvix.domain.Notification, actions: list[corvix.config.RuleAction], context: ActionExecutionContext) ActionExecutionResult[source][source]

Execute configured actions against a notification.

Args:

notification: The notification to act on. actions: The list of rule actions to execute. context: Execution context carrying gateways and flags.