aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema/events.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-06 23:06:00 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-06 23:06:00 +0300
commit56edcbcba83b8ff7f6f69ee4231f163e97df3346 (patch)
treee6eb1c31fd8f9a317fe1d6d49b019037f14b4746 /src/api/schema/events.rs
parentefceb30f0b447196615e3b2821d12ef82adcb3e2 (diff)
feat: expose pane scroll state
Diffstat (limited to 'src/api/schema/events.rs')
-rw-r--r--src/api/schema/events.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/api/schema/events.rs b/src/api/schema/events.rs
index aff3d2a2..41b9907d 100644
--- a/src/api/schema/events.rs
+++ b/src/api/schema/events.rs
@@ -3,7 +3,7 @@ use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use super::common::{AgentStatus, ReadSource};
-use super::panes::{PaneInfo, PaneReadResult};
+use super::panes::{PaneInfo, PaneReadResult, PaneScrollInfo};
use super::tabs::TabInfo;
use super::workspaces::WorkspaceInfo;
use super::worktrees::WorktreeInfo;
@@ -72,6 +72,8 @@ pub enum Subscription {
#[serde(default, skip_serializing_if = "Option::is_none")]
agent_status: Option<AgentStatus>,
},
+ #[serde(rename = "pane.scroll_changed")]
+ PaneScrollChanged { pane_id: String },
#[serde(rename = "layout.updated")]
LayoutUpdated {},
}
@@ -350,6 +352,8 @@ pub enum SubscriptionEventKind {
PaneOutputMatched,
#[serde(rename = "pane.agent_status_changed")]
PaneAgentStatusChanged,
+ #[serde(rename = "pane.scroll_changed")]
+ ScrollChanged,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
@@ -363,6 +367,7 @@ pub struct SubscriptionEventEnvelope {
pub enum SubscriptionEventData {
PaneOutputMatched(PaneOutputMatchedEvent),
PaneAgentStatusChanged(PaneAgentStatusChangedEvent),
+ ScrollChanged(PaneScrollChangedEvent),
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
@@ -389,6 +394,13 @@ pub struct PaneAgentStatusChangedEvent {
pub state_labels: HashMap<String, String>,
}
+#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
+pub struct PaneScrollChangedEvent {
+ pub pane_id: String,
+ pub workspace_id: String,
+ pub scroll: PaneScrollInfo,
+}
+
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum EventData {