mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
37a363da6deafcd056a6d5bfc693782ed16419bb
This commit implements isolated tmux sessions for each conversation and refines the terminal MCP tools to use consistent command terminology. **Per-Conversation Tmux Sessions:** - Each Session now creates its own Terminal MCP client with conversation ID as tmux session name - Complete isolation: commands from different conversations don't interfere - Automatic cleanup: tmux session killed when conversation ends - Updated getAllTools() to accept custom terminal tools per session - Session.cleanup() now async to properly await tmux session termination **Command-Based MCP Tools:** - Removed old terminal-based tools (list_terminals, create_terminal, etc.) - Kept only command-based tools (execute_command, list_commands, etc.) - Updated kill_command to accept multiple command IDs for batch cleanup - Fixed bug where all commands showed same metadata (working directory, command) - Added window-specific option storage using set-window-option/show-window-options **Bug Fixes:** - Fixed listCommands() showing wrong working directory and command for dead commands - Stored command metadata as tmux window options for proper retrieval - Enhanced test to verify multiple commands retain unique metadata **Testing:** - Added comprehensive test suite with 26 passing tests - All tests verify command execution, capture, interaction, and cleanup - TypeScript: no errors - Backward compatibility maintained with global singleton fallback Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Languages
TypeScript
98.1%
JavaScript
1.3%
Shell
0.1%
Swift
0.1%