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 +1 -1
- claude_mpm/services/cli/unified_dashboard_manager.py +12 -20
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/METADATA +1 -1
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/RECORD +8 -8
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/WHEEL +0 -0
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.2.32.dist-info → claude_mpm-4.2.33.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.2.
|
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
|
-
#
|
121
|
-
|
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 -
|
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
|
125
|
+
f"Port {port} is in use by a different service. Use force_restart to override."
|
127
126
|
)
|
128
|
-
|
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
|
-
#
|
139
|
-
|
140
|
-
|
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
|
164
|
-
|
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,5 +1,5 @@
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
2
|
-
claude_mpm/VERSION,sha256=
|
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=
|
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.
|
648
|
-
claude_mpm-4.2.
|
649
|
-
claude_mpm-4.2.
|
650
|
-
claude_mpm-4.2.
|
651
|
-
claude_mpm-4.2.
|
652
|
-
claude_mpm-4.2.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|