claude-mpm 4.1.27__py3-none-any.whl → 4.1.29__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.1.27
1
+ 4.1.29
@@ -266,7 +266,9 @@ class CodeAnalysisEventHandler(BaseEventHandler):
266
266
  emitter.emit = socket_emit
267
267
  # Initialize CodeTreeAnalyzer with emitter keyword argument
268
268
  self.logger.info("Creating CodeTreeAnalyzer")
269
- self.code_analyzer = CodeTreeAnalyzer(emitter=emitter)
269
+ # Pass emit_events=False to prevent duplicate events from the analyzer
270
+ # The emitter will still work but the analyzer won't create its own stdout emitter
271
+ self.code_analyzer = CodeTreeAnalyzer(emit_events=False, emitter=emitter)
270
272
 
271
273
  # Use the provided path as-is - the frontend sends the absolute path
272
274
  # Make sure we're using an absolute path
@@ -452,7 +454,9 @@ class CodeAnalysisEventHandler(BaseEventHandler):
452
454
  emitter.emit = socket_emit
453
455
  # Initialize CodeTreeAnalyzer with emitter keyword argument
454
456
  self.logger.info("Creating CodeTreeAnalyzer")
455
- self.code_analyzer = CodeTreeAnalyzer(emitter=emitter)
457
+ # Pass emit_events=False to prevent duplicate events from the analyzer
458
+ # The emitter will still work but the analyzer won't create its own stdout emitter
459
+ self.code_analyzer = CodeTreeAnalyzer(emit_events=False, emitter=emitter)
456
460
 
457
461
  # Discover directory
458
462
  result = self.code_analyzer.discover_directory(path, ignore_patterns)
@@ -462,17 +466,33 @@ class CodeAnalysisEventHandler(BaseEventHandler):
462
466
  f"Discovery result for {path}: {len(result.get('children', []))} children found"
463
467
  )
464
468
  self.logger.debug(f"Full result: {result}")
469
+
470
+ # DEBUG: Log exact children being sent
471
+ children = result.get('children', [])
472
+ if children:
473
+ self.logger.info(f"Children being sent: {[child.get('name') for child in children]}")
474
+ self.logger.info(f"Full children data: {children}")
475
+ else:
476
+ self.logger.warning(f"No children found for {path}")
477
+
478
+ # Prepare the response data
479
+ response_data = {
480
+ "request_id": request_id,
481
+ "path": path, # Absolute path as requested
482
+ "name": Path(path).name, # Just the directory name for display
483
+ "type": result.get("type", "directory"),
484
+ "children": children, # Send children array directly
485
+ }
486
+
487
+ # Log the exact data being sent
488
+ self.logger.info(f"Sending response data: {response_data}")
465
489
 
466
490
  # Send result with correct event name (using colons, not dots!)
467
491
  # Include both absolute path and relative name for frontend compatibility
492
+ # IMPORTANT: Don't use **result as it overwrites path and name
468
493
  await self.server.core.sio.emit(
469
494
  "code:directory:discovered",
470
- {
471
- "request_id": request_id,
472
- "path": path, # Absolute path as requested
473
- "name": Path(path).name, # Just the directory name for display
474
- **result,
475
- },
495
+ response_data,
476
496
  room=sid,
477
497
  )
478
498
 
@@ -592,7 +612,9 @@ class CodeAnalysisEventHandler(BaseEventHandler):
592
612
  emitter.emit = socket_emit
593
613
  # Initialize CodeTreeAnalyzer with emitter keyword argument
594
614
  self.logger.info("Creating CodeTreeAnalyzer")
595
- self.code_analyzer = CodeTreeAnalyzer(emitter=emitter)
615
+ # Pass emit_events=False to prevent duplicate events from the analyzer
616
+ # The emitter will still work but the analyzer won't create its own stdout emitter
617
+ self.code_analyzer = CodeTreeAnalyzer(emit_events=False, emitter=emitter)
596
618
 
597
619
  # Analyze file
598
620
  result = self.code_analyzer.analyze_file(path)
@@ -1361,8 +1361,11 @@ class CodeTreeAnalyzer:
1361
1361
  }
1362
1362
  result["children"].append(child)
1363
1363
 
1364
- if self.emitter:
1365
- self.emitter.emit_directory_discovered(path_str, [])
1364
+ # Don't emit directory discovered event here with empty children
1365
+ # The actual discovery will happen when the directory is clicked
1366
+ # This prevents confusing the frontend with empty directory events
1367
+ # if self.emitter:
1368
+ # self.emitter.emit_directory_discovered(path_str, [])
1366
1369
 
1367
1370
  elif item.is_file():
1368
1371
  # Check if it's a supported code file or a special file we want to show
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.1.27
3
+ Version: 4.1.29
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=ApGoLdxng30aaQ_n6bvsDRdVOTZ9LUqzyYAscpl87h4,7
2
+ claude_mpm/VERSION,sha256=-7n3E--as6Cmm3BkDPNk6Kf7LKwE7uWT9vf1qJ85D-I,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
@@ -541,7 +541,7 @@ claude_mpm/services/socketio/event_normalizer.py,sha256=TlhZbLgb6fSFNXNAZEEbGxHO
541
541
  claude_mpm/services/socketio/migration_utils.py,sha256=1pK_zGZ8Pd57pCg1O-3gKT8i7_fjEKZ377hxOMGUPQQ,11963
542
542
  claude_mpm/services/socketio/handlers/__init__.py,sha256=lGYFfn5P1eB6ri3HAPuDJMfdCfHIw6mQEbweAihNuHY,873
543
543
  claude_mpm/services/socketio/handlers/base.py,sha256=DjUODCOLTQSsC_-NP9yr-8g77arawmsRrM5KC06aDmw,4845
544
- claude_mpm/services/socketio/handlers/code_analysis.py,sha256=8GQZNvxxPQAqks7Cec5eG8W8-GjrbVGnYrbgLzBSMPY,23583
544
+ claude_mpm/services/socketio/handlers/code_analysis.py,sha256=-Q2Xw5tSGwkbCzxfrYYDrl05hdVSUryjp41Qgm8ogCk,24962
545
545
  claude_mpm/services/socketio/handlers/connection.py,sha256=sa6Rg5Y9tcf-e4PEb6f4fNhFQcpZ9WbwdiGXmkzlFTs,26781
546
546
  claude_mpm/services/socketio/handlers/connection_handler.py,sha256=DTY0pa--HQu4C6-WCgE1zskvHm3gVuEKWwaSFNBAoec,13287
547
547
  claude_mpm/services/socketio/handlers/file.py,sha256=itpPa5OAow5_OXrTOXk0vsyuEYm4iVmxwN9xowy7jiY,8341
@@ -574,7 +574,7 @@ claude_mpm/storage/__init__.py,sha256=DXnmee6iGqC6ctFLW7_Ty1cVCjYDFuCMkwO4EV0i25
574
574
  claude_mpm/storage/state_storage.py,sha256=1fFqkFy63T32JQvhUdVBNhaLQyUlkq4unjeyl0Z6j8I,16865
575
575
  claude_mpm/tools/__init__.py,sha256=T3GuCYNAHtjVcKCeivY674PaDm48WX96AriQfTKUknY,347
576
576
  claude_mpm/tools/__main__.py,sha256=MKDuxFuujqD5FZcLTqniDNQ2BI8yg5fDSLU3ElV6m6U,5709
577
- claude_mpm/tools/code_tree_analyzer.py,sha256=dpXcmxRTKMOXiteJhJZosUYaX6LX8ZVs92JL-q_mhCw,59951
577
+ claude_mpm/tools/code_tree_analyzer.py,sha256=BPxiJw_radcRny45FseKucSN-EwFm7gw-y78u4KmKKw,60212
578
578
  claude_mpm/tools/code_tree_builder.py,sha256=gwnsFO5ajs55UzX3SU34OMZBwhjouruQhGdQ3fJHjeA,18126
579
579
  claude_mpm/tools/code_tree_events.py,sha256=ypUmxQRUpxQt2LQfXV_qpdL42KNvLO-K5XstxZIj9-w,13277
580
580
  claude_mpm/tools/socketio_debug.py,sha256=H0mKHO6EIYqCVm4YU-SJ4Cw8ssA7VqJ3vU7y6eF7brk,22212
@@ -598,9 +598,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=zgiwLqh_17WxHpySvUPH65pb4bzIeUGOAYUJ
598
598
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
599
599
  claude_mpm/validation/agent_validator.py,sha256=3Lo6LK-Mw9IdnL_bd3zl_R6FkgSVDYKUUM7EeVVD3jc,20865
600
600
  claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
601
- claude_mpm-4.1.27.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
602
- claude_mpm-4.1.27.dist-info/METADATA,sha256=8ClCSM1vgoCdQ0ajHCHJb5seujM9Xyy8LdITDZ9kKY4,13777
603
- claude_mpm-4.1.27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
604
- claude_mpm-4.1.27.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
605
- claude_mpm-4.1.27.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
606
- claude_mpm-4.1.27.dist-info/RECORD,,
601
+ claude_mpm-4.1.29.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
602
+ claude_mpm-4.1.29.dist-info/METADATA,sha256=coxnHcQeW13BV-xXUbcN818cufh7MNEoof3I7hV-Rn0,13777
603
+ claude_mpm-4.1.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
604
+ claude_mpm-4.1.29.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
605
+ claude_mpm-4.1.29.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
606
+ claude_mpm-4.1.29.dist-info/RECORD,,