aboutsummaryrefslogtreecommitdiff
path: root/src/app/api.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-13 03:26:03 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-13 03:30:13 +0300
commit5cfe5e5e730246948b0c9428ad876b6938590aad (patch)
tree53d4bbe1aff6887f63f279eed1b5e4e11e7331b7 /src/app/api.rs
parent7f3364a468f7dcfd8c9c84e5737fe5699f0e3a93 (diff)
feat: add configurable sidebar metadata tokens
Diffstat (limited to 'src/app/api.rs')
-rw-r--r--src/app/api.rs25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/app/api.rs b/src/app/api.rs
index 9ebbbe56..c013d271 100644
--- a/src/app/api.rs
+++ b/src/app/api.rs
@@ -579,7 +579,6 @@ impl App {
agent: update.agent_label.clone(),
title: presentation.title,
display_agent: presentation.display_agent,
- custom_status: presentation.custom_status,
state_labels: presentation.state_labels,
},
});
@@ -745,6 +744,26 @@ impl App {
self.event_hub.push(event);
}
+ pub(crate) fn emit_pane_updated(&mut self, ws_idx: usize, pane_id: crate::layout::PaneId) {
+ if let Some(pane) = self.pane_info(ws_idx, pane_id) {
+ self.emit_event(crate::api::schema::EventEnvelope {
+ event: crate::api::schema::EventKind::PaneUpdated,
+ data: crate::api::schema::EventData::PaneUpdated { pane },
+ });
+ }
+ }
+
+ pub(crate) fn emit_workspace_token_updated(&mut self, ws_idx: usize) {
+ // Token updates bypass plugin hooks so a hook cannot refresh its own
+ // token and recursively trigger workspace.updated.
+ self.event_hub.push(crate::api::schema::EventEnvelope {
+ event: crate::api::schema::EventKind::WorkspaceMetadataUpdated,
+ data: crate::api::schema::EventData::WorkspaceMetadataUpdated {
+ workspace: self.workspace_info(ws_idx),
+ },
+ });
+ }
+
pub(crate) fn sync_focus_events(&mut self) {
let current_focus = self.state.active.and_then(|idx| {
self.state
@@ -816,6 +835,7 @@ impl App {
&mut self,
request: crate::api::schema::Request,
) -> String {
+ self.sync_terminal_titles();
use crate::api::schema::{
ErrorBody, ErrorResponse, Method, ResponseResult, SuccessResponse,
};
@@ -908,6 +928,9 @@ impl App {
Method::WorkspaceMove(params) => {
return self.handle_workspace_move(request.id, params);
}
+ Method::WorkspaceReportMetadata(params) => {
+ return self.handle_workspace_report_metadata(request.id, params);
+ }
Method::WorkspaceClose(target) => {
return self.handle_workspace_close(request.id, target)
}