diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-13 03:26:03 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-13 03:30:13 +0300 |
| commit | 5cfe5e5e730246948b0c9428ad876b6938590aad (patch) | |
| tree | 53d4bbe1aff6887f63f279eed1b5e4e11e7331b7 /src/api/schema/events.rs | |
| parent | 7f3364a468f7dcfd8c9c84e5737fe5699f0e3a93 (diff) | |
feat: add configurable sidebar metadata tokens
Diffstat (limited to 'src/api/schema/events.rs')
| -rw-r--r-- | src/api/schema/events.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/api/schema/events.rs b/src/api/schema/events.rs index 41b9907d..25ccc8ec 100644 --- a/src/api/schema/events.rs +++ b/src/api/schema/events.rs @@ -20,6 +20,8 @@ pub enum Subscription { WorkspaceCreated {}, #[serde(rename = "workspace.updated")] WorkspaceUpdated {}, + #[serde(rename = "workspace.metadata_updated")] + WorkspaceMetadataUpdated {}, #[serde(rename = "workspace.renamed")] WorkspaceRenamed {}, #[serde(rename = "workspace.moved")] @@ -48,6 +50,8 @@ pub enum Subscription { PaneCreated {}, #[serde(rename = "pane.closed")] PaneClosed {}, + #[serde(rename = "pane.updated")] + PaneUpdated {}, #[serde(rename = "pane.focused")] PaneFocused {}, #[serde(rename = "pane.moved")] @@ -188,6 +192,7 @@ pub enum EventMatch { pub enum EventKind { WorkspaceCreated, WorkspaceUpdated, + WorkspaceMetadataUpdated, WorkspaceClosed, WorkspaceRenamed, WorkspaceMoved, @@ -202,6 +207,7 @@ pub enum EventKind { TabFocused, PaneCreated, PaneClosed, + PaneUpdated, PaneFocused, PaneMoved, PaneOutputChanged, @@ -216,6 +222,7 @@ impl EventKind { match self { EventKind::WorkspaceCreated => "workspace.created", EventKind::WorkspaceUpdated => "workspace.updated", + EventKind::WorkspaceMetadataUpdated => "workspace.metadata_updated", EventKind::WorkspaceClosed => "workspace.closed", EventKind::WorkspaceRenamed => "workspace.renamed", EventKind::WorkspaceMoved => "workspace.moved", @@ -230,6 +237,7 @@ impl EventKind { EventKind::TabFocused => "tab.focused", EventKind::PaneCreated => "pane.created", EventKind::PaneClosed => "pane.closed", + EventKind::PaneUpdated => "pane.updated", EventKind::PaneFocused => "pane.focused", EventKind::PaneMoved => "pane.moved", EventKind::PaneOutputChanged => "pane.output_changed", @@ -245,6 +253,7 @@ impl EventKind { pub const KNOWN_EVENT_KINDS: &[EventKind] = &[ EventKind::WorkspaceCreated, EventKind::WorkspaceUpdated, + EventKind::WorkspaceMetadataUpdated, EventKind::WorkspaceClosed, EventKind::WorkspaceRenamed, EventKind::WorkspaceMoved, @@ -259,6 +268,7 @@ pub const KNOWN_EVENT_KINDS: &[EventKind] = &[ EventKind::TabFocused, EventKind::PaneCreated, EventKind::PaneClosed, + EventKind::PaneUpdated, EventKind::PaneFocused, EventKind::PaneMoved, EventKind::PaneOutputChanged, @@ -336,6 +346,8 @@ mod known_event_name_tests { let names = plugin_hook_event_names(); assert!(!names.contains(&"pane.output_changed")); assert!(!names.contains(&"layout.updated")); + assert!(!names.contains(&"workspace.metadata_updated")); + assert!(!names.contains(&"pane.updated")); assert!(names.contains(&"pane.moved")); } } @@ -385,8 +397,6 @@ pub struct PaneAgentStatusChangedEvent { #[serde(default, skip_serializing_if = "Option::is_none")] pub agent: Option<String>, #[serde(default, skip_serializing_if = "Option::is_none")] - pub custom_status: Option<String>, - #[serde(default, skip_serializing_if = "Option::is_none")] pub title: Option<String>, #[serde(default, skip_serializing_if = "Option::is_none")] pub display_agent: Option<String>, @@ -410,6 +420,9 @@ pub enum EventData { WorkspaceUpdated { workspace: WorkspaceInfo, }, + WorkspaceMetadataUpdated { + workspace: WorkspaceInfo, + }, WorkspaceClosed { workspace_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -472,6 +485,9 @@ pub enum EventData { pane_id: String, workspace_id: String, }, + PaneUpdated { + pane: PaneInfo, + }, PaneFocused { pane_id: String, workspace_id: String, @@ -515,8 +531,6 @@ pub enum EventData { title: Option<String>, #[serde(default, skip_serializing_if = "Option::is_none")] display_agent: Option<String>, - #[serde(default, skip_serializing_if = "Option::is_none")] - custom_status: Option<String>, #[serde(default, skip_serializing_if = "HashMap::is_empty")] state_labels: HashMap<String, String>, }, |
