We attempted to implement a tmux-style UI with dynamic panes within rendezvous (core) but couldn't find a suitable JS/TS library. Creating native C/FFI bindings can be hard to maintain.
To decouple the core logic from the UI, one plan is to emit events.
The core emits events, and the UI handles them (it'd be nice to look like https://harlequin.sh/). If event streaming isn't feasible, we'll persist events in a data store, most likely Redis (but have to thoroughly think how to ship the binary and spawn in the background).
If we take this route, we effectively separate the core from the UI, allowing flexibility in rendering, session tracking, and metric collection.
We attempted to implement a tmux-style UI with dynamic panes within rendezvous (core) but couldn't find a suitable JS/TS library. Creating native C/FFI bindings can be hard to maintain.
To decouple the core logic from the UI, one plan is to emit events.
The core emits events, and the UI handles them (it'd be nice to look like https://harlequin.sh/). If event streaming isn't feasible, we'll persist events in a data store, most likely Redis (but have to thoroughly think how to ship the binary and spawn in the background).
If we take this route, we effectively separate the core from the UI, allowing flexibility in rendering, session tracking, and metric collection.