claude-mpm 4.2.32__py3-none-any.whl → 4.2.33__py3-none-any.whl

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.
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 4.2.32
1
+ 4.2.33
@@ -117,33 +117,23 @@ class UnifiedDashboardManager(IUnifiedDashboardManager):
117
117
  self.logger.info(
118
118
  f"Force restarting our dashboard on port {port} (PID: {pid})"
119
119
  )
120
- # Use daemon manager for cleanup
121
- daemon_mgr = DaemonManager(port=port, host="localhost")
122
- daemon_mgr.cleanup_port_conflicts()
120
+ # Don't cleanup here - let daemon.start(force_restart=True) handle it
121
+ # This prevents race conditions where we kill the service we're trying to start
123
122
  elif self.is_dashboard_running(port) and not force_restart:
124
- # Different service is using the port - try to clean it up
123
+ # Different service is using the port - don't clean it up without force_restart
125
124
  self.logger.warning(
126
- f"Port {port} is in use by a different service, attempting cleanup"
125
+ f"Port {port} is in use by a different service. Use force_restart to override."
127
126
  )
128
- daemon_mgr = DaemonManager(port=port, host="localhost")
129
- daemon_mgr.cleanup_port_conflicts()
130
- # Brief pause to ensure cleanup is complete
131
- time.sleep(1)
127
+ return False, False
132
128
 
133
129
  self.logger.info(
134
130
  f"Starting unified dashboard on port {port} (background: {background}, force_restart: {force_restart})"
135
131
  )
136
132
 
137
133
  if background:
138
- # Always try to clean up first before starting
139
- self.logger.info(
140
- f"Pre-emptively cleaning up port {port} before starting daemon"
141
- )
142
- daemon_mgr = DaemonManager(port=port, host="localhost")
143
- if not daemon_mgr.cleanup_port_conflicts():
144
- self.logger.error(f"Failed to clean up port {port}, cannot proceed")
145
- return False, False
146
-
134
+ # The daemon.start() method will handle cleanup when force_restart=True
135
+ # We don't need pre-emptive cleanup here as it causes race conditions
136
+
147
137
  # Try to start daemon with retry on port conflicts
148
138
  max_retries = 3
149
139
  retry_count = 0
@@ -151,6 +141,7 @@ class UnifiedDashboardManager(IUnifiedDashboardManager):
151
141
 
152
142
  while retry_count < max_retries and not success:
153
143
  if retry_count > 0:
144
+ # Only cleanup on retries, not on first attempt
154
145
  self.logger.info(
155
146
  f"Retry {retry_count}/{max_retries}: Cleaning up port {port}"
156
147
  )
@@ -160,8 +151,9 @@ class UnifiedDashboardManager(IUnifiedDashboardManager):
160
151
  break
161
152
  time.sleep(3) # Longer wait for cleanup to complete
162
153
 
163
- # Start daemon in background mode with force restart if needed
164
- success = daemon.start(force_restart=True) # Always force restart
154
+ # Start daemon in background mode with force restart
155
+ # The daemon.start() method handles its own cleanup when force_restart=True
156
+ success = daemon.start(force_restart=force_restart)
165
157
 
166
158
  if not success and retry_count < max_retries - 1:
167
159
  # Check if it's a port conflict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.2.32
3
+ Version: 4.2.33
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
2
- claude_mpm/VERSION,sha256=D4RiM4BijFcXkczgjBK5VLy8keaTJQARC_2jVMdSt8s,7
2
+ claude_mpm/VERSION,sha256=qzV1UP-rT2LC7PFssERpzaTJWlcarFF9vZy-peH0sho,7
3
3
  claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=I946iCQzIIPRZVVJ8aO7lA4euiyDnNw2IX7EelAOkIE,5915
@@ -436,7 +436,7 @@ claude_mpm/services/cli/memory_crud_service.py,sha256=ciN9Pl_12iDAqF9zPBWOzu-iXi
436
436
  claude_mpm/services/cli/memory_output_formatter.py,sha256=nbf7VsjGvH4e9fLv9c7PzjuO9COZhbK5P2fNZ79055w,24783
437
437
  claude_mpm/services/cli/session_manager.py,sha256=rla_Stbcvt93wa9G9MCMu9UqB3FLGqlPt_eN5lQb3Gg,16599
438
438
  claude_mpm/services/cli/startup_checker.py,sha256=efhuvu8ns5G16jcQ0nQZKVddmD2AktUEdlvjNcXjAuk,12232
439
- claude_mpm/services/cli/unified_dashboard_manager.py,sha256=ZdiN-YlUjtycaE-TLUCRRP-WZZzwXz5XB896LgDx7G8,15712
439
+ claude_mpm/services/cli/unified_dashboard_manager.py,sha256=YXb3hbyukTk-yycqLAIUTYe54lt0GFI5OyH6VrLL_RI,15449
440
440
  claude_mpm/services/communication/__init__.py,sha256=b4qc7_Rqy4DE9q7BAUlfUZjoYG4uimAyUnE0irPcXyU,560
441
441
  claude_mpm/services/core/__init__.py,sha256=evEayLlBqJvxMZhrhuK6aagXmNrKGSj8Jm9OOxKzqvU,2195
442
442
  claude_mpm/services/core/base.py,sha256=iA-F7DgGp-FJIMvQTiHQ68RkG_k-AtUWlArJPMw6ZPk,7297
@@ -644,9 +644,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
644
644
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
645
645
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
646
646
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
647
- claude_mpm-4.2.32.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
648
- claude_mpm-4.2.32.dist-info/METADATA,sha256=5rI-z0awk9FawxvQGIv5ehodB23tje9Z3550ObeFurk,14451
649
- claude_mpm-4.2.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
650
- claude_mpm-4.2.32.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
651
- claude_mpm-4.2.32.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
652
- claude_mpm-4.2.32.dist-info/RECORD,,
647
+ claude_mpm-4.2.33.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
648
+ claude_mpm-4.2.33.dist-info/METADATA,sha256=kb4EFalJKRp2DXRUfxF2WxmaTes1t6z7NFrJ8ZE6434,14451
649
+ claude_mpm-4.2.33.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
650
+ claude_mpm-4.2.33.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
651
+ claude_mpm-4.2.33.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
652
+ claude_mpm-4.2.33.dist-info/RECORD,,