claude-mpm 4.5.5__py3-none-any.whl → 4.5.6__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/async_session_logger.py +25 -3
- claude_mpm/services/claude_session_logger.py +9 -1
- claude_mpm/services/project/archive_manager.py +0 -1
- claude_mpm/services/project/documentation_manager.py +0 -1
- claude_mpm/services/project/project_organizer.py +1 -4
- claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +0 -1
- claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +7 -3
- claude_mpm/services/unified/config_strategies/context_strategy.py +1 -3
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/METADATA +1 -1
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/RECORD +15 -15
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/WHEEL +0 -0
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.5.5.dist-info → claude_mpm-4.5.6.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.5.
|
1
|
+
4.5.6
|
@@ -175,6 +175,11 @@ class AsyncSessionLogger:
|
|
175
175
|
if self.enable_async:
|
176
176
|
self._start_worker()
|
177
177
|
|
178
|
+
# Log initialization status
|
179
|
+
logger.info(
|
180
|
+
f"AsyncSessionLogger initialized: session_id={self.session_id}, async={self.enable_async}, format={self.log_format.value}"
|
181
|
+
)
|
182
|
+
|
178
183
|
def _get_claude_session_id(self) -> str:
|
179
184
|
"""Get or generate a Claude session ID."""
|
180
185
|
# Check environment variables in order of preference
|
@@ -471,8 +476,19 @@ class AsyncSessionLogger:
|
|
471
476
|
Args:
|
472
477
|
timeout: Maximum time to wait for shutdown
|
473
478
|
"""
|
479
|
+
# Only log shutdown if we're actually shutting down an active logger
|
480
|
+
if self._shutdown:
|
481
|
+
logger.debug("AsyncSessionLogger already shut down")
|
482
|
+
return
|
483
|
+
|
474
484
|
if self.enable_async:
|
475
|
-
|
485
|
+
# Only log at INFO level if we actually processed something
|
486
|
+
if self.stats.get("logged", 0) > 0 or self.stats.get("queued", 0) > 0:
|
487
|
+
logger.info(
|
488
|
+
f"Shutting down async logger (logged: {self.stats.get('logged', 0)}, queued: {self.stats.get('queued', 0)})"
|
489
|
+
)
|
490
|
+
else:
|
491
|
+
logger.debug("Shutting down async logger (no activity)")
|
476
492
|
|
477
493
|
# Signal shutdown
|
478
494
|
self._shutdown = True
|
@@ -486,10 +502,16 @@ class AsyncSessionLogger:
|
|
486
502
|
|
487
503
|
# Log final statistics only if we actually logged something
|
488
504
|
if self.stats.get("logged", 0) > 0:
|
489
|
-
logger.info(f"
|
505
|
+
logger.info(f"AsyncSessionLogger final stats: {self.stats}")
|
506
|
+
elif self.stats.get("queued", 0) > 0 or self.stats.get("dropped", 0) > 0:
|
507
|
+
logger.debug(
|
508
|
+
f"AsyncSessionLogger stats (incomplete session): {self.stats}"
|
509
|
+
)
|
490
510
|
else:
|
491
511
|
# Use debug level when nothing was logged
|
492
|
-
logger.debug(
|
512
|
+
logger.debug(
|
513
|
+
f"AsyncSessionLogger stats (no sessions logged): {self.stats}"
|
514
|
+
)
|
493
515
|
|
494
516
|
def get_stats(self) -> Dict[str, Any]:
|
495
517
|
"""Get logger statistics."""
|
@@ -101,8 +101,16 @@ class ClaudeSessionLogger:
|
|
101
101
|
|
102
102
|
if self.use_async:
|
103
103
|
try:
|
104
|
+
# Pass our session_id to async logger to avoid duplicate generation
|
104
105
|
self._async_logger = get_async_logger(config=config)
|
105
|
-
|
106
|
+
# Synchronize session IDs - use the one we already generated
|
107
|
+
if self.session_id and hasattr(self._async_logger, "set_session_id"):
|
108
|
+
self._async_logger.set_session_id(self.session_id)
|
109
|
+
logger.info(
|
110
|
+
f"Using async logger with session ID: {self.session_id}"
|
111
|
+
)
|
112
|
+
else:
|
113
|
+
logger.info("Using async logger for improved performance")
|
106
114
|
except Exception as e:
|
107
115
|
logger.warning(
|
108
116
|
f"Failed to initialize async logger, falling back to sync: {e}"
|
@@ -961,7 +961,6 @@ Generated by Claude MPM Archive Manager
|
|
961
961
|
content,
|
962
962
|
)
|
963
963
|
|
964
|
-
|
965
964
|
def display_review_summary(self, review: Dict) -> None:
|
966
965
|
"""Display a formatted summary of the documentation review."""
|
967
966
|
console.print("\n[bold cyan]📚 Documentation Review Summary[/bold cyan]\n")
|
@@ -979,10 +979,7 @@ This directory is used for {description.lower()}.
|
|
979
979
|
for file in root_files:
|
980
980
|
if file.is_file() and (
|
981
981
|
("test" in file.name.lower() and file.suffix == ".py")
|
982
|
-
or (
|
983
|
-
file.suffix in [".sh", ".bash"]
|
984
|
-
and file.name not in ["Makefile"]
|
985
|
-
)
|
982
|
+
or (file.suffix in [".sh", ".bash"] and file.name not in ["Makefile"])
|
986
983
|
or file.suffix in [".log", ".tmp", ".cache"]
|
987
984
|
):
|
988
985
|
misplaced_count += 1
|
@@ -580,7 +580,6 @@ class DependencyAnalyzerStrategy(AnalyzerStrategy):
|
|
580
580
|
# In production, you would integrate with vulnerability databases
|
581
581
|
# like npm audit, pip-audit, or safety
|
582
582
|
|
583
|
-
|
584
583
|
def _calculate_statistics(self, results: Dict[str, Any]) -> Dict[str, Any]:
|
585
584
|
"""Calculate dependency statistics."""
|
586
585
|
all_deps = self._flatten_dependencies(results.get("dependencies", {}))
|
@@ -716,9 +716,13 @@ class StructureAnalyzerStrategy(AnalyzerStrategy):
|
|
716
716
|
}
|
717
717
|
|
718
718
|
# Compare architecture
|
719
|
-
if
|
720
|
-
|
721
|
-
|
719
|
+
if (
|
720
|
+
"architecture" in baseline
|
721
|
+
and "architecture" in current
|
722
|
+
and (
|
723
|
+
baseline["architecture"]["pattern"]
|
724
|
+
!= current["architecture"]["pattern"]
|
725
|
+
)
|
722
726
|
):
|
723
727
|
comparison["architecture_change"] = {
|
724
728
|
"baseline": baseline["architecture"]["pattern"],
|
@@ -509,9 +509,7 @@ class CachingContextManager:
|
|
509
509
|
def invalidate_context(self, context_id: str):
|
510
510
|
"""Invalidate all cached values for context"""
|
511
511
|
with self._lock:
|
512
|
-
keys_to_remove = [
|
513
|
-
k for k in self.cache if k.startswith(f"{context_id}:")
|
514
|
-
]
|
512
|
+
keys_to_remove = [k for k in self.cache if k.startswith(f"{context_id}:")]
|
515
513
|
|
516
514
|
for key in keys_to_remove:
|
517
515
|
del self.cache[key]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
2
|
-
claude_mpm/VERSION,sha256=
|
2
|
+
claude_mpm/VERSION,sha256=TZz-l5RDMFBnEZirovU2IQUX14xx_gKKqZQH96mBUT0,6
|
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=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
|
@@ -403,8 +403,8 @@ claude_mpm/scripts/socketio_daemon.py,sha256=I1n0ny6UZTQWKN-_ZiNKK37jJTRgRESyHDA
|
|
403
403
|
claude_mpm/scripts/start_activity_logging.py,sha256=1G9bFYiBSkpxSRXyKht73nL5gH-4zwukLutWWKAipGg,2869
|
404
404
|
claude_mpm/services/__init__.py,sha256=X10comSYoSvoi4jaz9a7ztqcYhCZMX7QmX7nwHGJjCM,7495
|
405
405
|
claude_mpm/services/agent_capabilities_service.py,sha256=8-LA1JuTF9IZRBT0AvU4HF9OBMCyySTOZGNuX17T6JM,10776
|
406
|
-
claude_mpm/services/async_session_logger.py,sha256=
|
407
|
-
claude_mpm/services/claude_session_logger.py,sha256=
|
406
|
+
claude_mpm/services/async_session_logger.py,sha256=X_BTBRXwLThgFb8Vtkg0PsA2HN2-1RH6wqdBGxfQSgM,23013
|
407
|
+
claude_mpm/services/claude_session_logger.py,sha256=QLPz46shI6m0gmfxr7vn_mMXNjhYMYd3PDfhpIOQjWo,10882
|
408
408
|
claude_mpm/services/command_deployment_service.py,sha256=FxrHWuhvEaYL6PmjCN7Y0TlGWWIDHkzm_0UwvqI2C3A,6132
|
409
409
|
claude_mpm/services/command_handler_service.py,sha256=LdKnujKUgrCYrvKvmCXaUMk7JGFJsyNeiKnDFdR8ox8,7031
|
410
410
|
claude_mpm/services/event_aggregator.py,sha256=DDcehIZVpiEDzs9o18gDZyvjMBHCq2H8HF4h0ofG9d4,20250
|
@@ -668,13 +668,13 @@ claude_mpm/services/project/analyzer.py,sha256=VHlLrP8-S5gr12w4Yzs7-6d7LWdJKISHP
|
|
668
668
|
claude_mpm/services/project/analyzer_refactored.py,sha256=USYEdPAhSoGPqZCpaT89Dw6ElFW_L1yXSURheQjAhLA,18243
|
669
669
|
claude_mpm/services/project/analyzer_v2.py,sha256=YZ_AZPXST-ZcvnJ1yXDWUm2oXuermpkk3e5E8lHBoGE,24655
|
670
670
|
claude_mpm/services/project/architecture_analyzer.py,sha256=EyGBXdogQktj8BflGxnVHezMCJGzhEbrDVYSTtKm7wE,16886
|
671
|
-
claude_mpm/services/project/archive_manager.py,sha256=
|
671
|
+
claude_mpm/services/project/archive_manager.py,sha256=zu0UBmfGW4oWEEZ58B7wtnUHdVz-VEHpUHFA3ptcrjU,39077
|
672
672
|
claude_mpm/services/project/dependency_analyzer.py,sha256=b53HIjYjcwiVVgk5EXQUp6zsFU5mwGeRtFuqZMO4X48,15621
|
673
|
-
claude_mpm/services/project/documentation_manager.py,sha256=
|
673
|
+
claude_mpm/services/project/documentation_manager.py,sha256=LH60S7Xs_YbW834MoLsTXiNiWEf1Zk5L93H58cOf8J0,19072
|
674
674
|
claude_mpm/services/project/enhanced_analyzer.py,sha256=8qzaiLUwoOrhhCuY9utC5cERF3wAuJkvG1WvexP6PuI,18540
|
675
675
|
claude_mpm/services/project/language_analyzer.py,sha256=KnbwHLtUcnzdMY6bseZk90bMo0yI9n_pXP5Mj4tLDgg,9209
|
676
676
|
claude_mpm/services/project/metrics_collector.py,sha256=nqsf2zcVVQU785dYmZ45cex3PByk56NCFC93mr4McIM,12873
|
677
|
-
claude_mpm/services/project/project_organizer.py,sha256=
|
677
|
+
claude_mpm/services/project/project_organizer.py,sha256=Sn0RcZXYmxZpBOgg79Q02gEp1xEVHnkwY-gxsbCFKkg,37553
|
678
678
|
claude_mpm/services/project/registry.py,sha256=XhPmkuEz9tKKKnT9Ca1zsUuNgZJQy40WFHJERj09-40,24166
|
679
679
|
claude_mpm/services/shared/__init__.py,sha256=9sL2GHHGg8-lboHTZ8mzIfhcCWiFCQyWbpC27jkBRI0,597
|
680
680
|
claude_mpm/services/shared/async_service_base.py,sha256=46Z-ATX5N0FhugNsF6byJ42frs4Rw5ZWfhw3Paf2788,7010
|
@@ -720,13 +720,13 @@ claude_mpm/services/unified/unified_config.py,sha256=mskcybytGDDEXMSx88gdl-1QPWq
|
|
720
720
|
claude_mpm/services/unified/unified_deployment.py,sha256=F-fKNTjGVHri92oaD21iyubDdL20qzuKPA7pDdVcU3o,14917
|
721
721
|
claude_mpm/services/unified/analyzer_strategies/__init__.py,sha256=cQqmsHjYf9olriRFjiBVnpX75X4VHGd8rAwiWr1k540,1369
|
722
722
|
claude_mpm/services/unified/analyzer_strategies/code_analyzer.py,sha256=tnr6NYEqJ9PM-ScPs7SQvfaH7V9JOafhGLLYH_sZBWc,17797
|
723
|
-
claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py,sha256=
|
723
|
+
claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py,sha256=nUrNQF5mBr7GHTR-gE2SPQBxCWdpwntoa3CHiC_GqCo,24041
|
724
724
|
claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py,sha256=AuLPlg4wEIF_tVfHWSEaG2Xva0hASX4m1TtsuiJnd1Y,33599
|
725
725
|
claude_mpm/services/unified/analyzer_strategies/security_analyzer.py,sha256=r2xQsVw8wQ2r6RnG088DgNuPZX0sT6y72xtTw3Om3bA,26496
|
726
|
-
claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py,sha256=
|
726
|
+
claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py,sha256=9DfKYz4d36IwIRkk3ABEmakyW7TgGnpv1jEtqUYE31o,25269
|
727
727
|
claude_mpm/services/unified/config_strategies/__init__.py,sha256=b39wSfMCI1ah8gbgZHZFRaaLdsNo1sVfCWikqTS3Olk,4298
|
728
728
|
claude_mpm/services/unified/config_strategies/config_schema.py,sha256=SLQs7M8RmpeMA2n1lfYUU1ePdO78O3fyNRFo3Y1oQkA,24706
|
729
|
-
claude_mpm/services/unified/config_strategies/context_strategy.py,sha256=
|
729
|
+
claude_mpm/services/unified/config_strategies/context_strategy.py,sha256=kTlZ3cGdXUGCG1jEjK5Re864PBBw4wT_RO5WeP-Zp_w,25179
|
730
730
|
claude_mpm/services/unified/config_strategies/error_handling_strategy.py,sha256=zp-sFg2SgOj7Z-DesSpeDfBnWvnIZ94znxdiYaGGyow,35687
|
731
731
|
claude_mpm/services/unified/config_strategies/file_loader_strategy.py,sha256=6sAiWAZfYaBJ8dFgAQQTuSGXLwyD9ES05agWdvQUdV4,29428
|
732
732
|
claude_mpm/services/unified/config_strategies/unified_config_service.py,sha256=_CcKeaV7-xAmTy-y9ajlOu2H1mUyFin77tpxG7wRyaY,29468
|
@@ -776,9 +776,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
776
776
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
777
777
|
claude_mpm/validation/agent_validator.py,sha256=Nm2WmcbCb0EwOG4nFcikc3wVdiiAfjGBBI3YoR6ainQ,20915
|
778
778
|
claude_mpm/validation/frontmatter_validator.py,sha256=IDBOCBweO6umydSnUJjBh81sKk3cy9hRFYm61DCiXbI,7020
|
779
|
-
claude_mpm-4.5.
|
780
|
-
claude_mpm-4.5.
|
781
|
-
claude_mpm-4.5.
|
782
|
-
claude_mpm-4.5.
|
783
|
-
claude_mpm-4.5.
|
784
|
-
claude_mpm-4.5.
|
779
|
+
claude_mpm-4.5.6.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
780
|
+
claude_mpm-4.5.6.dist-info/METADATA,sha256=8gYiFkHq_U1xhjhFPxVv4_mvuy08lsjaWQRN7-oCx_c,17517
|
781
|
+
claude_mpm-4.5.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
782
|
+
claude_mpm-4.5.6.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
|
783
|
+
claude_mpm-4.5.6.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
784
|
+
claude_mpm-4.5.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|