aboutsummaryrefslogtreecommitdiff
path: root/src/protocol
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-14 02:43:45 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-14 03:47:07 +0300
commitfbd20ad6e488fb3b9efc1612fdffee6e672976c1 (patch)
treed21daf93241786f8aa6fde23b41cdb9e15182b79 /src/protocol
parentd35c642ef36ee5ac2afe7c1b18ad5a717bc807d8 (diff)
feat: add plugin v1 system
Add manifest-driven plugin actions, event hooks, pane entrypoints, link handlers, and host APIs. Support plugin link, GitHub install, build commands, installed plugin registry, pane movement, runtime context, and plugin docs.
Diffstat (limited to 'src/protocol')
-rw-r--r--src/protocol/wire.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/protocol/wire.rs b/src/protocol/wire.rs
index 03492547..79c051b7 100644
--- a/src/protocol/wire.rs
+++ b/src/protocol/wire.rs
@@ -628,6 +628,12 @@ pub enum ServerMessage {
data: String,
},
+ /// Set the foreground client's outer terminal window title.
+ WindowTitle {
+ /// Sanitized title to write with OSC 0. `None` restores Herdr's default title.
+ title: Option<String>,
+ },
+
/// Client-local runtime config changed on disk; refresh it without reconnecting.
ReloadSoundConfig,
@@ -929,7 +935,7 @@ mod tests {
}
#[test]
- fn client_message_wire_tags_preserve_protocol_13_order() {
+ fn client_message_wire_tags_preserve_protocol_14_order() {
fn tag(msg: &ClientMessage) -> u8 {
*bincode::serde::encode_to_vec(msg, bincode::config::standard())
.unwrap()
@@ -1279,6 +1285,17 @@ mod tests {
}
#[test]
+ fn server_window_title_roundtrip() {
+ for title in [Some("herdr api".to_owned()), None] {
+ let msg = ServerMessage::WindowTitle { title };
+ let encoded = bincode::serde::encode_to_vec(&msg, bincode::config::standard()).unwrap();
+ let (decoded, _): (ServerMessage, _) =
+ bincode::serde::decode_from_slice(&encoded, bincode::config::standard()).unwrap();
+ assert_eq!(msg, decoded);
+ }
+ }
+
+ #[test]
fn server_graphics_roundtrip() {
let msg = ServerMessage::Graphics {
bytes: b"\x1b_Ga=d,d=A,q=2;\x1b\\".to_vec(),