channels: add tmux pane channel daemon

Standalone daemon that streams tmux pane output via pipe-pane
(no polling). Each configured pane becomes a channel "tmux.<label>"
accessible through the standard channel.capnp protocol.

- pipe-pane streams PTY output directly to FIFOs
- Async readers push new lines into ChannelLogs
- send works via tmux send-keys
- Cleanup disconnects pipe-pane on daemon exit

Config: ~/.consciousness/channels/tmux.json5
Socket: ~/.consciousness/channels/tmux.sock

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
ProofOfConcept 2026-04-04 14:15:33 -04:00 committed by Kent Overstreet
parent c2c5530ecc
commit 1ef137fb3a
3 changed files with 325 additions and 1 deletions

19
channels/tmux/Cargo.toml Normal file
View file

@ -0,0 +1,19 @@
[package]
name = "consciousness-channel-tmux"
version.workspace = true
edition.workspace = true
[dependencies]
capnp = "0.20"
capnp-rpc = "0.20"
dirs = "6"
libc = "0.2"
scopeguard = "1"
futures = "0.3"
json5 = "0.4"
poc-memory = { path = "../.." }
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["compat"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }