tide-commander 1.82.0 → 1.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/assets/{BossLogsModal-c_-m-65A.js → BossLogsModal-Bgg8MqNZ.js} +1 -1
  2. package/dist/assets/{BossSpawnModal-xoclsIKS.js → BossSpawnModal-SQNEPxH1.js} +1 -1
  3. package/dist/assets/{ControlsModal-DvbJLRQI.js → ControlsModal-ImEPi76l.js} +1 -1
  4. package/dist/assets/{DockerLogsModal-BEwlDjvB.js → DockerLogsModal-Cs3jjehG.js} +1 -1
  5. package/dist/assets/{EmbeddedEditor-Ce0A9MPZ.js → EmbeddedEditor-Cg3lq_Cv.js} +1 -1
  6. package/dist/assets/{GmailOAuthSetup-CxPmSlXq.js → GmailOAuthSetup-1Gh5-yZt.js} +1 -1
  7. package/dist/assets/{GoogleOAuthSetup-C5XDtkWo.js → GoogleOAuthSetup-DmXPQyOR.js} +1 -1
  8. package/dist/assets/{IframeModal-B30rL5T9.js → IframeModal-BEItm7bf.js} +1 -1
  9. package/dist/assets/{IntegrationsPanel-DOiXFhKJ.js → IntegrationsPanel-epI8eaV_.js} +2 -2
  10. package/dist/assets/{LogViewerModal-BDDX94V7.js → LogViewerModal-B4ryb52t.js} +1 -1
  11. package/dist/assets/{MonitoringModal-Bb-ofaiK.js → MonitoringModal-CzUjqD5Y.js} +1 -1
  12. package/dist/assets/{PM2LogsModal-BbwXHEqR.js → PM2LogsModal-Ex9G2Mly.js} +1 -1
  13. package/dist/assets/{RestoreArchivedAreaModal-DDndv4rZ.js → RestoreArchivedAreaModal-DIsamY35.js} +1 -1
  14. package/dist/assets/{Scene2DCanvas-D0mV81Bm.js → Scene2DCanvas-B5VdT-R2.js} +1 -1
  15. package/dist/assets/{SceneManager-BT7vcVki.js → SceneManager-CgkTa3Uf.js} +1 -1
  16. package/dist/assets/{SkillsPanel-Db_tfT8F.js → SkillsPanel-DXxAlZbz.js} +1 -1
  17. package/dist/assets/{SpawnModal-BgBB9Nre.js → SpawnModal-_1Af5rTQ.js} +1 -1
  18. package/dist/assets/{SubordinateAssignmentModal-CsNUXzAa.js → SubordinateAssignmentModal-CZ1p4KxH.js} +1 -1
  19. package/dist/assets/{TriggerManagerPanel-DLjvwFj_.js → TriggerManagerPanel-DnOvAQq6.js} +1 -1
  20. package/dist/assets/{WorkflowEditorPanel-CtWq2X20.js → WorkflowEditorPanel-Dr896thl.js} +1 -1
  21. package/dist/assets/{index-CeGEneIm.js → index-C70mj1bd.js} +1 -1
  22. package/dist/assets/{index-dz45uNT2.js → index-CgPa_6TH.js} +1 -1
  23. package/dist/assets/{index-BKRYCHvF.js → index-CkhtIUBY.js} +1 -1
  24. package/dist/assets/{index-DjcUPqW1.js → index-CoUtzDXD.js} +1 -1
  25. package/dist/assets/{index-BWFXqJh3.js → index-DCHHa29_.js} +1 -1
  26. package/dist/assets/{index-Bx7MluX4.js → index-DVqDWfDB.js} +2 -2
  27. package/dist/assets/{index-Blb2sMy-.js → index-DvRrAd9Y.js} +1 -1
  28. package/dist/assets/{index-kLrB6kGv.js → index-OYmdvKdM.js} +3 -3
  29. package/dist/assets/{index-B-kiGa62.js → index-ave_XgRW.js} +1 -1
  30. package/dist/assets/{main-C0wLbrjb.js → main-CHfGSVnw.js} +94 -93
  31. package/dist/assets/main-DmmvYoEs.css +1 -0
  32. package/dist/assets/{web-CQeInubf.js → web-D1aYcbd6.js} +1 -1
  33. package/dist/assets/{web-Dpd6fLBM.js → web-rv0WAVTk.js} +1 -1
  34. package/dist/index.html +2 -2
  35. package/dist/src/packages/server/claude/runner/internal-events.js +6 -3
  36. package/dist/src/packages/server/claude/runner/tmux-helper.js +10 -0
  37. package/dist/src/packages/server/claude/runner/watchdog.js +14 -0
  38. package/dist/src/packages/server/claude/runner.js +35 -13
  39. package/dist/src/packages/server/claude/session-loader.js +240 -0
  40. package/dist/src/packages/server/routes/agents.js +4 -0
  41. package/dist/src/packages/server/routes/index.js +2 -0
  42. package/dist/src/packages/server/routes/sessions.js +93 -0
  43. package/dist/src/packages/server/services/runtime-command-execution.js +13 -0
  44. package/dist/src/packages/server/services/runtime-service.js +7 -0
  45. package/dist/src/packages/server/utils/index.js +1 -0
  46. package/dist/src/packages/server/utils/log-context.js +10 -0
  47. package/dist/src/packages/server/utils/logger.js +6 -1
  48. package/dist/src/packages/server/websocket/handlers/agent-handler.js +17 -5
  49. package/package.json +1 -1
  50. package/dist/assets/main-DrNeyjdE.css +0 -1
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import * as fs from 'fs';
7
7
  import * as path from 'path';
8
+ import { getCurrentAgentId } from './log-context.js';
8
9
  const fileLogConfig = {
9
10
  enabled: true,
10
11
  directory: path.join(process.cwd(), 'logs'),
@@ -180,6 +181,10 @@ function formatMessage(level, context, message, ...args) {
180
181
  const timestampStr = `${colors.dim}${timestamp}${colors.reset}`;
181
182
  const levelStr = `${color}${colors.bright}${label.padStart(7)}${colors.reset}`;
182
183
  const contextStr = `${colors.yellow}[${context}]${colors.reset}`;
184
+ const agentId = getCurrentAgentId();
185
+ const agentStr = agentId
186
+ ? ` ${colors.cyan}[agentId=${agentId}]${colors.reset}`
187
+ : '';
183
188
  let formattedMessage = message;
184
189
  if (args.length > 0) {
185
190
  const argsStr = args.map(arg => {
@@ -195,7 +200,7 @@ function formatMessage(level, context, message, ...args) {
195
200
  }).join(' ');
196
201
  formattedMessage = `${message} ${colors.cyan}${argsStr}${colors.reset}`;
197
202
  }
198
- return `${appName} ${pidStr} - ${timestampStr} ${levelStr} ${contextStr} ${formattedMessage}`;
203
+ return `${appName} ${pidStr} - ${timestampStr} ${levelStr} ${contextStr}${agentStr} ${formattedMessage}`;
199
204
  }
200
205
  class Logger {
201
206
  context;
@@ -175,6 +175,11 @@ export async function handleClearContext(ctx, payload) {
175
175
  }
176
176
  /**
177
177
  * Handle restore_session message - restores a previous session for an agent
178
+ *
179
+ * Optional `cwd` enables cross-project restore from the global Session Finder:
180
+ * if the chosen session lives in a different project directory than the agent
181
+ * currently uses, we update the agent's cwd alongside its sessionId so Claude
182
+ * Code can resolve the JSONL on the next run.
178
183
  */
179
184
  export async function handleRestoreSession(ctx, payload) {
180
185
  const agent = agentService.getAgent(payload.agentId);
@@ -182,13 +187,14 @@ export async function handleRestoreSession(ctx, payload) {
182
187
  ctx.sendError(`Agent not found: ${payload.agentId}`);
183
188
  return;
184
189
  }
185
- log.log(`Agent ${agent.name}: Restoring session ${payload.sessionId}`);
190
+ const targetCwd = payload.cwd && payload.cwd !== agent.cwd ? payload.cwd : undefined;
191
+ log.log(`Agent ${agent.name}: Restoring session ${payload.sessionId}` +
192
+ (targetCwd ? ` (cwd change: ${agent.cwd} -> ${targetCwd})` : ''));
186
193
  // Archive the current session first (if any)
187
194
  agentService.archiveCurrentSession(payload.agentId);
188
195
  // Stop any running process
189
196
  await runtimeService.stopAgent(payload.agentId);
190
- // Set the restored session ID
191
- agentService.updateAgent(payload.agentId, {
197
+ const updates = {
192
198
  status: 'idle',
193
199
  currentTask: undefined,
194
200
  taskLabel: undefined,
@@ -197,8 +203,14 @@ export async function handleRestoreSession(ctx, payload) {
197
203
  tokensUsed: 0,
198
204
  contextUsed: 0,
199
205
  contextStats: undefined,
200
- });
201
- ctx.sendActivity(payload.agentId, `Session restored - will resume on next command`);
206
+ };
207
+ if (targetCwd) {
208
+ updates.cwd = targetCwd;
209
+ }
210
+ agentService.updateAgent(payload.agentId, updates);
211
+ ctx.sendActivity(payload.agentId, targetCwd
212
+ ? `Session restored from ${targetCwd} - will resume on next command`
213
+ : `Session restored - will resume on next command`);
202
214
  log.log(`Agent ${agent.name}: Session restored to ${payload.sessionId}`);
203
215
  }
204
216
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tide-commander",
3
- "version": "1.82.0",
3
+ "version": "1.83.0",
4
4
  "description": "Visual multi-agent orchestrator and manager for Claude Code with 3D/2D interface",
5
5
  "repository": {
6
6
  "type": "git",