mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
feat: full Agent Teams support with tmux split-pane mode
- Enable tmux mouse mode on session creation for click-to-select panes - Auto-discover teammate panes via tmux list-panes when config.json lacks paneIds - Enable mouse mode dynamically when team pane streams start (restored sessions) - Suppress teammate subagent popup windows (false info); teammates use main tmux panes - Remove standalone teammate terminal windows in favor of native tmux interaction Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ When user says "COM":
|
||||
1. Increment version in BOTH `package.json` AND `CLAUDE.md` (verify they match with `grep version package.json && grep Version CLAUDE.md`)
|
||||
2. Run: `git add -A && git commit -m "chore: bump version to X.XXXX" && git push && npm run build && systemctl --user restart claudeman-web`
|
||||
|
||||
**Version**: 0.1486 (must match `package.json` for npm publish)
|
||||
**Version**: 0.1487 (must match `package.json` for npm publish)
|
||||
|
||||
## Project Overview
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "claudeman",
|
||||
"version": "0.1486",
|
||||
"version": "0.1487",
|
||||
"description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
+9
-16
@@ -2943,22 +2943,8 @@ class ClaudemanApp {
|
||||
sessionId: data.sessionId,
|
||||
color: data.color,
|
||||
});
|
||||
// Upgrade any existing subagent windows for this teammate to terminal mode
|
||||
let foundExisting = false;
|
||||
for (const [agentId, agent] of this.subagents) {
|
||||
const info = this.getTeammateInfo(agent);
|
||||
if (info && info.name === data.teammateName && !this.teammateTerminals.has(agentId)) {
|
||||
const windowData = this.subagentWindows.get(agentId);
|
||||
if (windowData) {
|
||||
this.initTeammateTerminal(agentId, data, windowData.element);
|
||||
foundExisting = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// If no existing subagent window found, create a standalone teammate terminal window
|
||||
if (!foundExisting) {
|
||||
this.openTeammateTerminalWindow(data);
|
||||
}
|
||||
// Teammate pane windows are disabled — users interact with teammates
|
||||
// directly through the main tmux split-pane terminal instead.
|
||||
});
|
||||
|
||||
addListener('teammate:terminal', (e) => {
|
||||
@@ -12021,6 +12007,13 @@ class ClaudemanApp {
|
||||
// ========== Subagent Floating Windows ==========
|
||||
|
||||
openSubagentWindow(agentId) {
|
||||
// Skip teammate agents — they use tmux split panes in the main terminal,
|
||||
// not floating popup windows. Prevents false-info activity log popups.
|
||||
const agentForTeammateCheck = this.subagents.get(agentId);
|
||||
if (agentForTeammateCheck && this.getTeammateInfo(agentForTeammateCheck)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If window already exists, focus it
|
||||
if (this.subagentWindows.has(agentId)) {
|
||||
const existing = this.subagentWindows.get(agentId);
|
||||
|
||||
Reference in New Issue
Block a user