aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-03-29 04:23:22 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-03-29 04:23:22 +0300
commitfd1e3b8b056b2937fc0a5c90bf482e01d269f6b2 (patch)
tree4bd41fc4c4682c4fae42e5ea742ee2b93c7672ff /src/main.rs
parent60baa765d942dcc40ee8bf0e58400aa634b6741a (diff)
feat: add initial socket api for workspace and pane control
add unix socket request/response api scaffolding implement initial workspace and pane commands: - ping - workspace.list - workspace.get - workspace.create - pane.list - pane.get - pane.read - pane.send_text - pane.send_keys - pane.wait_for_output improve pane read semantics: - visible trims trailing blank viewport rows - recent reads from parser scrollback/current screen - wait_for_output returns matched snapshot plus matched_line add real subprocess integration tests for socket api
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 6bcaa111..e3c54541 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -18,6 +18,7 @@ const NESTED_HERDR_MESSAGES: [&str; 6] = [
"recursion detected. base case not found. aborting.",
];
+mod api;
mod app;
mod config;
mod detect;
@@ -223,6 +224,9 @@ fn main() -> io::Result<()> {
init_logging();
+ let (api_tx, api_rx) = std::sync::mpsc::channel();
+ let _api_server = api::start_server(api_tx)?;
+
let no_session = std::env::args().any(|a| a == "--no-session");
let in_tmux = std::env::var("TMUX").is_ok();
@@ -284,7 +288,7 @@ fn main() -> io::Result<()> {
std::io::stdout().flush()?;
}
- let mut app = app::App::new(config, no_session, config_diagnostic);
+ let mut app = app::App::new(config, no_session, config_diagnostic, api_rx);
let result = app.run(&mut terminal).await;
// Reset modifyOtherKeys if we enabled it