crackerjack 0.38.15__tar.gz → 0.39.0__tar.gz
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.
Potentially problematic release.
This version of crackerjack might be problematic. Click here for more details.
- {crackerjack-0.38.15 → crackerjack-0.39.0}/CHANGELOG.md +56 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/CLAUDE.md +103 -314
- {crackerjack-0.38.15 → crackerjack-0.39.0}/PKG-INFO +7 -2
- {crackerjack-0.38.15 → crackerjack-0.39.0}/README.md +1 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/__main__.py +134 -13
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/__init__.py +2 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/base.py +1 -0
- crackerjack-0.39.0/crackerjack/agents/claude_code_bridge.py +319 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/coordinator.py +6 -3
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/dry_agent.py +187 -3
- crackerjack-0.39.0/crackerjack/agents/enhanced_coordinator.py +279 -0
- crackerjack-0.39.0/crackerjack/agents/enhanced_proactive_agent.py +185 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/performance_agent.py +324 -3
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/refactoring_agent.py +254 -5
- crackerjack-0.39.0/crackerjack/agents/semantic_agent.py +479 -0
- crackerjack-0.39.0/crackerjack/agents/semantic_helpers.py +356 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/options.py +27 -0
- crackerjack-0.39.0/crackerjack/cli/semantic_handlers.py +290 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/async_workflow_orchestrator.py +9 -8
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/enhanced_container.py +1 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/phase_coordinator.py +1 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/proactive_workflow.py +1 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/workflow_orchestrator.py +9 -6
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/documentation/ai_templates.py +1 -1
- crackerjack-0.39.0/crackerjack/example.mcp.json +16 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/interactive.py +1 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/server_core.py +2 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/__init__.py +2 -0
- crackerjack-0.39.0/crackerjack/mcp/tools/semantic_tools.py +584 -0
- crackerjack-0.39.0/crackerjack/models/semantic_models.py +271 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/plugins/loader.py +2 -2
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/py313.py +4 -1
- crackerjack-0.39.0/crackerjack/services/embeddings.py +444 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/quality_intelligence.py +11 -1
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/smart_scheduling.py +1 -1
- crackerjack-0.39.0/crackerjack/services/vector_store.py +681 -0
- crackerjack-0.39.0/crackerjack/slash_commands/run.md +197 -0
- crackerjack-0.39.0/docs/PYTORCH-COMPATIBILITY-FIX.md +39 -0
- crackerjack-0.39.0/docs/SEMANTIC-SEARCH-IMPLEMENTATION.md +288 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/pyproject.toml +11 -10
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test___main__.py +48 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_ai_templates.py +1 -1
- crackerjack-0.39.0/tests/test_architect_agent.py +197 -0
- crackerjack-0.39.0/tests/test_async_workflow_orchestrator.py +107 -0
- crackerjack-0.39.0/tests/test_base.py +795 -0
- crackerjack-0.39.0/tests/test_claude_code_bridge.py +170 -0
- crackerjack-0.39.0/tests/test_coordinator.py +244 -0
- crackerjack-0.39.0/tests/test_documentation_agent (1).py +249 -0
- crackerjack-0.39.0/tests/test_documentation_agent.py +161 -0
- crackerjack-0.39.0/tests/test_dry_agent.py +161 -0
- crackerjack-0.39.0/tests/test_enhanced_coordinator.py +262 -0
- crackerjack-0.39.0/tests/test_enhanced_proactive_agent.py +227 -0
- crackerjack-0.39.0/tests/test_formatting_agent.py +161 -0
- crackerjack-0.39.0/tests/test_import_optimization_agent.py +161 -0
- crackerjack-0.39.0/tests/test_lsp_client.py +235 -0
- crackerjack-0.39.0/tests/test_performance_agent (1).py +131 -0
- crackerjack-0.39.0/tests/test_performance_monitor.py +23 -0
- crackerjack-0.39.0/tests/test_proactive_workflow.py +11 -0
- crackerjack-0.39.0/tests/test_rust_tool_adapter.py +711 -0
- crackerjack-0.39.0/tests/test_rust_tool_manager.py +82 -0
- crackerjack-0.39.0/tests/test_service_watchdog.py +155 -0
- crackerjack-0.39.0/tests/test_skylos_adapter.py +123 -0
- crackerjack-0.39.0/tests/test_timeout_manager.py +227 -0
- crackerjack-0.39.0/tests/test_validate_input_validator_patterns.py +11 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_validate_regex_patterns.py +13 -1
- crackerjack-0.39.0/tests/test_websocket_lifecycle.py +239 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_workflow_orchestrator.py +60 -0
- crackerjack-0.39.0/tests/test_zuban_adapter.py +137 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/uv.lock +625 -217
- crackerjack-0.38.15/crackerjack/slash_commands/run.md +0 -163
- crackerjack-0.38.15/tests/test_architect_agent.py +0 -70
- crackerjack-0.38.15/tests/test_base.py +0 -74
- crackerjack-0.38.15/tests/test_coordinator.py +0 -55
- crackerjack-0.38.15/tests/test_documentation_agent.py +0 -67
- crackerjack-0.38.15/tests/test_dry_agent.py +0 -69
- crackerjack-0.38.15/tests/test_formatting_agent.py +0 -67
- crackerjack-0.38.15/tests/test_import_optimization_agent.py +0 -192
- crackerjack-0.38.15/tests/test_lsp_client.py +0 -51
- crackerjack-0.38.15/tests/test_rust_tool_adapter.py +0 -53
- crackerjack-0.38.15/tests/test_rust_tool_manager.py +0 -53
- crackerjack-0.38.15/tests/test_skylos_adapter.py +0 -51
- crackerjack-0.38.15/tests/test_zuban_adapter.py +0 -51
- {crackerjack-0.38.15 → crackerjack-0.39.0}/.codespell-ignore +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/.codespellrc +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/.github/FUNDING.yml +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/.gitignore +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/.pre-commit-config.yaml +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/AGENTS.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/LICENSE +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/QWEN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/RULES.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/SECURITY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/ai/AGENT-CAPABILITIES.json +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/ai/AGENT_SELECTION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/ai/AI-REFERENCE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/ai/ERROR-PATTERNS.yaml +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/CLAUDE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/lsp_client.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/rust_tool_adapter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/rust_tool_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/skylos_adapter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/adapters/zuban_adapter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/architect_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/documentation_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/formatting_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/import_optimization_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/performance_helpers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/proactive_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/refactoring_helpers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/security_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/test_creation_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/test_specialist_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/agents/tracker.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/api.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/cache_handlers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/cache_handlers_enhanced.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/facade.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/handlers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/interactive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/cli/utils.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/code_cleaner.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/config/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/config/global_lock_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/config/hooks.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/autofix_coordinator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/container.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/file_lifecycle.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/performance.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/performance_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/resource_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/service_watchdog.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/session_coordinator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/timeout_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/core/websocket_lifecycle.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/INDEX.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/generated/api/API_REFERENCE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/generated/api/CLI_REFERENCE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/generated/api/CROSS_REFERENCES.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/generated/api/PROTOCOLS.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/docs/generated/api/SERVICES.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/documentation/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/documentation/dual_output_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/documentation/mkdocs_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/documentation/reference_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/dynamic_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/errors.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/async_hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/cached_hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/hook_lock_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/individual_hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/lsp_aware_hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/executors/tool_proxy.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/hooks/lsp_hook.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/adaptive_learning.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/agent_orchestrator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/agent_registry.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/agent_selector.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/intelligence/integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/async_hook_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/hook_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/publish_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/test_command_builder.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/test_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/test_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/test_manager_backup.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/managers/test_progress.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/cache.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/client_runner.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/context.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/dashboard.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/enhanced_progress_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/enhanced_progress_monitor.tcss +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/file_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/progress_components.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/progress_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/progress_monitor.tcss +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/rate_limiter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/server.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/service_watchdog.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/state.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/task_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/core_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/error_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/execution_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/execution_tools_backup.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/intelligence_tool_registry.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/intelligence_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/monitoring_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/monitoring_tools.py.backup +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/proactive_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/progress_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/utility_tools.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/tools/workflow_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/app.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/endpoints.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/jobs.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/monitoring_endpoints.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/server.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket/websocket_handler.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mcp/websocket_server.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mixins/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/mixins/error_handling.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/config_adapter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/protocols.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/resource_protocols.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/models/task.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/monitoring/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/monitoring/ai_agent_watchdog.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/monitoring/metrics_collector.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/monitoring/regression_prevention.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/monitoring/websocket_server.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/orchestration/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/orchestration/advanced_orchestrator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/orchestration/coverage_improvement.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/orchestration/execution_strategies.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/orchestration/test_progress_streamer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/plugins/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/plugins/base.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/plugins/hooks.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/plugins/managers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/pyproject.toml +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/security/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/security/audit.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/anomaly_detector.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/api_extractor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/backup_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/bounded_status_operations.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/cache.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/changelog_automation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/config_integrity.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/config_merge.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/config_template.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/contextual_ai_assistant.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/coverage_badge_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/coverage_ratchet.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/debug.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/dependency_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/dependency_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/documentation_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/documentation_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/enhanced_filesystem.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/enterprise_optimizer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/error_pattern_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/file_hasher.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/filesystem.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/git.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/health_metrics.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/heatmap_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/initialization.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/input_validator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/intelligent_commit.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/log_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/logging.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/lsp_client.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/memory_optimizer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/metrics.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/parallel_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/pattern_cache.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/pattern_detector.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/performance_benchmarks.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/performance_cache.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/performance_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/predictive_analytics.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/quality_baseline.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/quality_baseline_enhanced.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/regex_patterns.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/regex_utils.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/secure_path_utils.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/secure_status_formatter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/secure_subprocess.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/security.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/security_logger.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/server_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/status_authentication.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/status_security_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/terminal_utils.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/thread_safe_status_collector.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/tool_version_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/unified_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/validation_rate_limiter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/version_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/version_checker.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/websocket_resource_limiter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/services/zuban_lsp_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/slash_commands/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/slash_commands/init.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/slash_commands/status.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/tools/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/tools/fix_terminal.sh +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/tools/validate_input_validator_patterns.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/tools/validate_regex_patterns.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/ui/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/ui/server_panels.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/crackerjack/uv.lock +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/FUTURE-ENHANCEMENTS.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/architecture/API_REFERENCE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/architecture/ARCHITECTURE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/archive/CONFIG_MANAGEMENT_REPLACEMENT_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/archive/CONFIG_MERGE_REMOVAL_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/archive/DOCUMENTATION_REORGANIZATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/development/IDE-SETUP.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/development/RUST_TOOLING_FRAMEWORK.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/COMPLEXITY_REFACTORING_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/COVERAGE_BADGE_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/CURRENT_IMPLEMENTATION_STATUS.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/DOCUMENTATION_SYSTEM_ARCHITECTURE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/EXPERIMENTAL-EVALUATION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/FEATURE_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_IMPLEMENTATION_SUMMARY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/STAGE_HEADERS_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/TIMEOUT_ARCHITECTURE_SOLUTION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/TYPE_ANNOTATION_FIXING_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/UVXUSAGE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/ZUBAN_LSP_INTEGRATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/planning/ZUBAN_TOML_PARSING_BUG_ANALYSIS.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/precommit-handling/CLEANUP_SUMMARY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/precommit-handling/CRACKERJACK_PRECOMMIT_HANDLING_IMPLEMENTATION_SUMMARY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/precommit-handling/FINAL_PRECOMMIT_HANDLING_VERIFICATION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/precommit-handling/PRECOMMIT_HANDLING_SUMMARY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/precommit-handling/README.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/INPUT_VALIDATOR_SECURITY_AUDIT.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/SECURITY-AUDIT.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/SECURITY_AUDIT_REPORT.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/SECURITY_AUDIT_STATUS_DISCLOSURE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/SECURITY_HARDENING_REPORT.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/security/SECURITY_SUBPROCESS_HARDENING_REPORT.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/BACKUP_SYSTEM.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/CACHING_SYSTEM.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/DASHBOARD_ARCHITECTURE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/MCP_INTEGRATION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/MONITORING_INTEGRATION.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/docs/systems/UNIFIED_MONITORING_ARCHITECTURE.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/example.mcp.json +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/mypy.ini +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/scripts/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/scripts/integrate_resource_management.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/scripts/performance_benchmark.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/templates/api_reference.md.template +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/templates/changelog_entry.md.template +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/templates/user_guide.md.template +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/test_docs_site/site/docs/api-reference.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/test_docs_site/site/docs/getting-started.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/test_docs_site/site/docs/index.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/test_docs_site/site/docs/stylesheets/extra.css +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/test_docs_site/site/mkdocs.yml +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/base_test.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/conftest.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/coverage.json +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/data/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/data/init.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/docs/HEALTH_METRICS_TESTING_SUMMARY.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/docs/TEST_COVERAGE_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/docs/TEST_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/run_tests.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/scripts/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/scripts/agent_audit_report.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/scripts/run_test_suite.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_ai_agent_workflow.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_ai_optimized_documentation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_anomaly_detector_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_api.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_api_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_async_hook_executor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_async_hook_executor_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_changelog_generation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_cli/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_cli/test_global_lock_options.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_cli_semantic_naming.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_code_cleaner.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_code_cleaner_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_coordinator_performance.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_autofix_coordinator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_enhanced_container.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_modules.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_core_performance.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_documentation_agent_simple.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_dual_output_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_dynamic_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_dynamic_config_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_end_to_end_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_enhanced_filesystem.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_enhanced_filesystem_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_enhanced_filesystem_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_errors.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_execution_speed_optimization.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_executors/__init__.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_executors/test_lock_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_fast_hooks_behavior.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_filesystem_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_final_validation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_global_lock_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_hook_executor_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_hook_lock_manager.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_hook_manager_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_hook_manager_simple.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_import_coverage_consolidated.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_initialization_precommit_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_initialization_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_input_validation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_intelligence_system.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_interactive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_large_modules_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_main_entry_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_main_module.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_managers_consolidated.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_mcp_progress_monitor.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_mcp_server.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_mkdocs_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_models_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_models_config_adapter_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_models_focused.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_models_task_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_modernized_code.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_performance_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_performance_agent_enhanced.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_performance_agent_simple.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_performance_benchmarks_focused.py.bak +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_performance_helpers.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_phase_coordinator_simple.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_plugins_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_proactive_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_proactive_agent_system.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_protocol_compliance.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_publish_manager_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_py313.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_pytest_features.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_refactoring_agent.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_reference_generator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_regex_patterns.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_resource_cleanup_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_secure_path_utils.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_secure_status_formatter.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_security_audit.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_security_hardening.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_security_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_server_panels.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_services_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_session_coordinator.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_session_coordinator_comprehensive.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_session_coordinator_coverage.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_simple_tool_version_service.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_simple_workflow.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_skip_hooks_functionality.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_skip_hooks_simple.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_stage_workflow_execution_order.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_structured_errors.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_structured_logging.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_syntax_validation.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_terminal_restoration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_terminal_state.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_timeout_system.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_unified_api.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_unified_config.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_unified_monitoring_dashboard.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_validate_regex_patterns_tool.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_version_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_version_bump_analyzer.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_websocket_endpoints.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_workflow_fast_hooks.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_workflow_integration.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tests/test_workflow_pipeline.py +0 -0
- {crackerjack-0.38.15 → crackerjack-0.39.0}/tools/validate_regex_patterns_standalone.py +0 -0
|
@@ -5,6 +5,62 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.39.0] - 2025-09-28
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- test: Update 24 files
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 03:49:18
|
|
17
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 07:28:02
|
|
18
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 07:43:25
|
|
19
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 07:55:55
|
|
20
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 08:27:08
|
|
21
|
+
- Crackerjack (quality: 73/100) - 2025-09-25 11:31:40
|
|
22
|
+
- Crackerjack (quality: 73/100) - 2025-09-26 13:55:31
|
|
23
|
+
- Crackerjack (quality: 73/100) - 2025-09-28 08:40:14
|
|
24
|
+
|
|
25
|
+
## [Unreleased] - 2025-09-28
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- feat: add new feature
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
- fix: resolve bug in parser
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [Unreleased] - 2025-09-28
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- feat: add new feature
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- fix: resolve bug in parser
|
|
43
|
+
|
|
44
|
+
## [Unreleased] - 2025-09-26
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- feat: add new feature
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- fix: resolve bug in parser
|
|
53
|
+
|
|
54
|
+
## [Unreleased] - 2025-09-26
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
|
|
58
|
+
- feat: add new feature
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- fix: resolve bug in parser
|
|
63
|
+
|
|
8
64
|
## [0.38.15] - 2025-09-22
|
|
9
65
|
|
|
10
66
|
### Changed
|
|
@@ -10,359 +10,150 @@ Crackerjack is an opinionated Python project management tool unifying UV, Ruff,
|
|
|
10
10
|
|
|
11
11
|
**Clean Code Philosophy**: DRY/YAGNI/KISS - Every line is a liability. Optimize for readability with self-documenting code.
|
|
12
12
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
- **[AI-REFERENCE.md](docs/ai/AI-REFERENCE.md)** - Command reference with decision trees
|
|
16
|
-
- **[AGENT-CAPABILITIES.json](AGENT-CAPABILITIES.json)** - Structured agent data
|
|
17
|
-
- **[ERROR-PATTERNS.yaml](ERROR-PATTERNS.yaml)** - Automated issue resolution patterns
|
|
18
|
-
|
|
19
|
-
## Essential Commands
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# Daily workflow
|
|
23
|
-
python -m crackerjack # Quality checks
|
|
24
|
-
python -m crackerjack --run-tests # With tests
|
|
25
|
-
python -m crackerjack --ai-fix --run-tests # AI auto-fixing (recommended)
|
|
26
|
-
|
|
27
|
-
# Development
|
|
28
|
-
python -m crackerjack --ai-debug --run-tests # Debug AI issues
|
|
29
|
-
python -m crackerjack --skip-hooks # Skip hooks during iteration
|
|
30
|
-
python -m crackerjack --strip-code # Code cleaning mode
|
|
31
|
-
|
|
32
|
-
# Monitoring & Performance
|
|
33
|
-
python -m crackerjack --dashboard # Comprehensive monitoring dashboard
|
|
34
|
-
python -m crackerjack --unified-dashboard # Unified real-time dashboard
|
|
35
|
-
python -m crackerjack --monitor # Multi-project progress monitor
|
|
36
|
-
python -m crackerjack --benchmark # Run in benchmark mode
|
|
37
|
-
python -m crackerjack --cache-stats # Display cache statistics
|
|
38
|
-
python -m crackerjack --clear-cache # Clear all caches
|
|
39
|
-
|
|
40
|
-
# Server management
|
|
41
|
-
python -m crackerjack --start-mcp-server # MCP server
|
|
42
|
-
python -m crackerjack --restart-mcp-server # Restart MCP server
|
|
43
|
-
python -m crackerjack --watchdog # Monitor/restart services
|
|
44
|
-
|
|
45
|
-
# Release
|
|
46
|
-
python -m crackerjack --full-release patch # Full release workflow
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## AI Agent System
|
|
50
|
-
|
|
51
|
-
**9 Specialized Agents** handle domain-specific issues:
|
|
52
|
-
|
|
53
|
-
- **RefactoringAgent** (0.9): Complexity ≤15, dead code removal
|
|
54
|
-
- **PerformanceAgent** (0.85): O(n²) detection, optimization
|
|
55
|
-
- **SecurityAgent** (0.8): Hardcoded paths, unsafe operations
|
|
56
|
-
- **DocumentationAgent** (0.8): Changelog, .md consistency
|
|
57
|
-
- **TestCreationAgent** (0.8): Test failures, fixtures
|
|
58
|
-
- **DRYAgent** (0.8): Code duplication patterns
|
|
59
|
-
- **FormattingAgent** (0.8): Style violations, imports
|
|
60
|
-
- **ImportOptimizationAgent**: Import cleanup, reorganization
|
|
61
|
-
- **TestSpecialistAgent** (0.8): Advanced testing scenarios
|
|
62
|
-
|
|
63
|
-
**Usage**: `--ai-fix` enables batch fixing; confidence ≥0.7 uses specific agents
|
|
64
|
-
|
|
65
|
-
## Advanced Services (Enabled by Default)
|
|
66
|
-
|
|
67
|
-
Crackerjack now includes sophisticated intelligence services that enhance the development experience automatically:
|
|
68
|
-
|
|
69
|
-
### 🧠 Smart Commit Messages (Default)
|
|
70
|
-
|
|
71
|
-
- **AI-Powered Analysis**: Analyzes staged changes using conventional commit patterns
|
|
72
|
-
- **Context-Aware**: Considers file types, change patterns, and scope for descriptive messages
|
|
73
|
-
- **Automatic Detection**: Identifies breaking changes, features, fixes, and refactoring
|
|
74
|
-
- **Fallback Option**: Use `--basic-commit` to disable smart messages when needed
|
|
75
|
-
|
|
76
|
-
### 📈 Version Intelligence (Integrated)
|
|
77
|
-
|
|
78
|
-
- **Semantic Analysis**: AI recommends version bumps (major/minor/patch) based on commits
|
|
79
|
-
- **Breaking Change Detection**: Automatically identifies API-breaking changes
|
|
80
|
-
- **Conventional Commits**: Analyzes feat/fix/breaking patterns with confidence scoring
|
|
81
|
-
- **Interactive Mode**: Use `--bump interactive` to see AI recommendations during selection
|
|
82
|
-
|
|
83
|
-
### 📝 Changelog Automation (Default)
|
|
84
|
-
|
|
85
|
-
- **Git History Analysis**: Automatically generates changelog entries from commits
|
|
86
|
-
- **Categorized Entries**: Groups changes by type (Added, Fixed, Changed, etc.)
|
|
87
|
-
- **Version Integration**: Updates changelog during version bumps and publishing
|
|
88
|
-
- **Markdown Generation**: Creates properly formatted CHANGELOG.md entries
|
|
89
|
-
|
|
90
|
-
### 🎯 Quality Intelligence (Active)
|
|
91
|
-
|
|
92
|
-
- **Anomaly Detection**: ML-based quality trend analysis and early warning system
|
|
93
|
-
- **Pattern Recognition**: Identifies improvement/regression patterns in code quality
|
|
94
|
-
- **Workflow Decisions**: Influences hook selection based on quality history
|
|
95
|
-
- **Predictive Analytics**: Recommends comprehensive vs. fast quality checks intelligently
|
|
96
|
-
|
|
97
|
-
### ⚡ Performance Benchmarks (Reporting)
|
|
98
|
-
|
|
99
|
-
- **Real-time Metrics**: Tracks workflow execution time and resource usage
|
|
100
|
-
- **Improvement Analysis**: Shows performance gains from optimizations and caching
|
|
101
|
-
- **Memory Optimization**: Reports cache hit ratios and memory efficiency metrics
|
|
102
|
-
- **Historical Trends**: Maintains performance baselines for comparison
|
|
103
|
-
|
|
104
|
-
**Integration Benefits**:
|
|
105
|
-
|
|
106
|
-
- All services work together seamlessly with graceful fallbacks
|
|
107
|
-
- Zero configuration required - intelligent defaults work out of the box
|
|
108
|
-
- Enhanced developer experience with minimal performance impact
|
|
109
|
-
- Comprehensive quality assurance with intelligent automation
|
|
110
|
-
|
|
111
|
-
## High-Performance Rust Integration
|
|
112
|
-
|
|
113
|
-
**Ultra-Fast Static Analysis** with seamless Python integration:
|
|
114
|
-
|
|
115
|
-
- **🦅 Skylos**: Dead code detection **20x faster** than vulture
|
|
116
|
-
- **🔍 Zuban**: Type checking **20-200x faster** than pyright
|
|
117
|
-
- **🚀 Performance**: 6,000+ operations/second throughput
|
|
118
|
-
- **🔄 Compatibility**: Zero breaking changes, drop-in replacements
|
|
119
|
-
|
|
120
|
-
**Benefits in Daily Workflow**:
|
|
121
|
-
|
|
122
|
-
- Pre-commit hooks complete in seconds instead of minutes
|
|
123
|
-
- `--run-tests` now blazingly fast with Rust-powered type checking
|
|
124
|
-
- AI agents get faster feedback for more efficient fixing cycles
|
|
125
|
-
- Development iteration speed dramatically improved
|
|
126
|
-
|
|
127
|
-
## Architecture
|
|
128
|
-
|
|
129
|
-
**Modular DI Architecture**: `__main__.py` → `WorkflowOrchestrator` → Coordinators → Managers → Services
|
|
130
|
-
|
|
131
|
-
**Critical Pattern**: Always import protocols from `models/protocols.py`, never concrete classes
|
|
132
|
-
|
|
133
|
-
```python
|
|
134
|
-
# ❌ Wrong
|
|
135
|
-
from ..managers.test_manager import TestManager
|
|
136
|
-
|
|
137
|
-
# ✅ Correct
|
|
138
|
-
from ..models.protocols import TestManagerProtocol
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
**Core Layers**:
|
|
142
|
-
|
|
143
|
-
- **Orchestration**: `WorkflowOrchestrator`, DI containers, lifecycle management
|
|
144
|
-
- **Coordinators**: Session/phase coordination, async workflows, parallel execution
|
|
145
|
-
- **Managers**: Hook execution (fast→comprehensive), test management, publishing
|
|
146
|
-
- **Services**: Filesystem, git, config, security, health monitoring
|
|
147
|
-
|
|
148
|
-
## Testing & Development
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
# Specific test
|
|
152
|
-
python -m pytest tests/test_file.py::TestClass::test_method -v
|
|
153
|
-
|
|
154
|
-
# Coverage
|
|
155
|
-
python -m pytest --cov=crackerjack --cov-report=html
|
|
156
|
-
|
|
157
|
-
# Custom workers
|
|
158
|
-
python -m crackerjack --run-tests --test-workers 4
|
|
159
|
-
|
|
160
|
-
# Version bump
|
|
161
|
-
python -m crackerjack --bump patch
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Quality Process
|
|
165
|
-
|
|
166
|
-
**Workflow Order**:
|
|
167
|
-
|
|
168
|
-
1. **Fast Hooks** (~5s): formatting, basic checks → retry once if fail
|
|
169
|
-
1. **Full Test Suite**: collect ALL failures, don't stop on first
|
|
170
|
-
1. **Comprehensive Hooks** (~30s): type checking, security, complexity → collect ALL issues
|
|
171
|
-
1. **AI Batch Fixing**: process all collected failures together
|
|
172
|
-
|
|
173
|
-
**Testing**: pytest with asyncio, 300s timeout, auto-detected workers
|
|
174
|
-
**Coverage**: Ratchet system targeting 100%, never decrease
|
|
175
|
-
|
|
176
|
-
## Code Standards
|
|
177
|
-
|
|
178
|
-
**Quality Rules**:
|
|
179
|
-
|
|
180
|
-
- **Complexity ≤15** per function
|
|
181
|
-
- **No hardcoded paths** (use `tempfile`)
|
|
182
|
-
- **No shell=True** in subprocess
|
|
183
|
-
- **Type annotations required**
|
|
184
|
-
- **Protocol-based DI**
|
|
185
|
-
- **Python 3.13+**: `|` unions, protocols, pathlib
|
|
186
|
-
|
|
187
|
-
**Refactoring Pattern**: Break complex methods into helpers
|
|
188
|
-
|
|
189
|
-
```python
|
|
190
|
-
def complex_method(self, data: dict) -> bool:
|
|
191
|
-
if not self._validate_input(data):
|
|
192
|
-
return self._handle_invalid_input()
|
|
193
|
-
processed = self._process_data(data)
|
|
194
|
-
return self._save_results(processed)
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
**Critical Regex Safety**: NEVER write raw regex. Use centralized registry:
|
|
198
|
-
|
|
199
|
-
```python
|
|
200
|
-
# ❌ DANGEROUS
|
|
201
|
-
text = re.sub(r"(\w+) - (\w+)", r"\g < 1 >-\g < 2 >", text)
|
|
202
|
-
|
|
203
|
-
# ✅ SAFE
|
|
204
|
-
from crackerjack.services.regex_patterns import SAFE_PATTERNS
|
|
205
|
-
|
|
206
|
-
text = SAFE_PATTERNS["fix_hyphenated_names"].apply(text)
|
|
207
|
-
```
|
|
13
|
+
## CRITICAL SECURITY & QUALITY RULES
|
|
208
14
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
**Development**:
|
|
212
|
-
|
|
213
|
-
- **AI agent ineffective**: Use `--ai-debug --run-tests` for analysis
|
|
214
|
-
- **Import errors**: Always import protocols from `models/protocols.py`
|
|
215
|
-
- **Test hangs**: Avoid complex async tests, use simple synchronous config tests
|
|
216
|
-
- **Coverage failing**: Never reduce below baseline, add tests incrementally
|
|
217
|
-
- **Complexity >15**: Break into helper methods using RefactoringAgent approach
|
|
218
|
-
|
|
219
|
-
**Server**:
|
|
220
|
-
|
|
221
|
-
- **MCP not starting**: `--restart-mcp-server` or `--watchdog`
|
|
222
|
-
- **Terminal stuck**: `stty sane; reset; exec $SHELL -l`
|
|
223
|
-
- **Slow tests**: Customize `--test-workers N` or use `--skip-hooks`
|
|
224
|
-
|
|
225
|
-
## MCP Server Integration
|
|
226
|
-
|
|
227
|
-
**Features**: Dual protocol (MCP + WebSocket), real-time progress, job tracking
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# Start server
|
|
231
|
-
python -m crackerjack --start-mcp-server
|
|
232
|
-
|
|
233
|
-
# Monitor progress at http://localhost:8675/
|
|
234
|
-
python -m crackerjack.mcp.progress_monitor <job_id>
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Available Tools**: `execute_crackerjack`, `get_job_progress`, `get_comprehensive_status`, `analyze_errors`
|
|
238
|
-
|
|
239
|
-
**Slash Commands**: `/crackerjack:run`, `/crackerjack:status`, `/crackerjack:init`
|
|
240
|
-
|
|
241
|
-
## Session Management Integration
|
|
242
|
-
|
|
243
|
-
**Automatic Lifecycle**: Crackerjack projects (git repositories) get automatic session management via session-mgmt-mcp:
|
|
244
|
-
|
|
245
|
-
- **Session Start**: Automatically initialized when Claude Code connects
|
|
246
|
-
- **Mid-Session**: `/session-mgmt:checkpoint` performs quality checks with intelligent auto-compaction
|
|
247
|
-
- **Session End**: Automatically executed on `/quit`, disconnect, or crash with graceful cleanup
|
|
15
|
+
### 1. NEVER MAKE UNAUTHORIZED CHANGES
|
|
248
16
|
|
|
249
|
-
**
|
|
17
|
+
- **ONLY** modify what is explicitly requested.
|
|
18
|
+
- **NEVER** change unrelated code, files, or functionality.
|
|
19
|
+
- If you think something else needs changing, **ASK FIRST**.
|
|
20
|
+
- Changing anything not explicitly requested is considered **prohibited change**.
|
|
250
21
|
|
|
251
|
-
|
|
252
|
-
# Standard crackerjack workflow with automatic session management
|
|
253
|
-
python -m crackerjack --ai-fix --run-tests # Quality + AI fixing
|
|
254
|
-
# Session checkpoints happen automatically during long runs
|
|
255
|
-
# Session cleanup happens automatically when you quit Claude Code
|
|
256
|
-
```
|
|
22
|
+
### 2. DEPENDENCY MANAGEMENT IS MANDATORY
|
|
257
23
|
|
|
258
|
-
**
|
|
24
|
+
- **ALWAYS** update package.json/requirements.txt or pyproject.toml when adding imports.
|
|
25
|
+
- **NEVER** add import statements without corresponding dependency entries.
|
|
26
|
+
- **VERIFY** all dependencies are properly declared before suggesting code.
|
|
259
27
|
|
|
260
|
-
|
|
261
|
-
- **Memory Management**: Auto-compaction during checkpoints when context is heavy
|
|
262
|
-
- **Progress Continuity**: Next session resumes with accumulated learning from previous work
|
|
263
|
-
- **Zero Manual Intervention**: All session lifecycle managed automatically for git repos
|
|
28
|
+
### 3. NO PLACEHOLDERS - EVER
|
|
264
29
|
|
|
265
|
-
**
|
|
30
|
+
- **NEVER** use placeholder values like "YOUR_API_KEY", "TODO", or dummy data.
|
|
31
|
+
- **ALWAYS** use proper variable references or configuration patterns.
|
|
32
|
+
- If real values are needed, **ASK** for them explicitly.
|
|
33
|
+
- Use environment variables or config files, not hardcoded values.
|
|
266
34
|
|
|
267
|
-
|
|
35
|
+
### 4. QUESTION VS CODE REQUEST DISTINCTION
|
|
268
36
|
|
|
269
|
-
-
|
|
270
|
-
-
|
|
271
|
-
-
|
|
272
|
-
- Command effectiveness optimized based on history
|
|
37
|
+
- When a user asks a **QUESTION**, provide an **ANSWER** - do NOT change code.
|
|
38
|
+
- Only modify code when explicitly requested with phrases like "change", "update", "modify", "fix".
|
|
39
|
+
- **NEVER** assume a question is a code change request.
|
|
273
40
|
|
|
274
|
-
|
|
41
|
+
### 5. NO ASSUMPTIONS OR GUESSING
|
|
275
42
|
|
|
276
|
-
|
|
43
|
+
- If information is missing, **ASK** for clarification.
|
|
44
|
+
- **NEVER** guess library versions, API formats, or implementation details.
|
|
45
|
+
- **NEVER** make assumptions about user requirements or use cases.
|
|
46
|
+
- State clearly what information you need to proceed.
|
|
277
47
|
|
|
278
|
-
###
|
|
48
|
+
### 6. SECURITY IS NON-NEGOTIABLE
|
|
279
49
|
|
|
280
|
-
|
|
50
|
+
- **NEVER** put API keys, secrets, or credentials in client-side code.
|
|
51
|
+
- **ALWAYS** implement proper authentication and authorization.
|
|
52
|
+
- **ALWAYS** use environment variables for sensitive data.
|
|
53
|
+
- **ALWAYS** implement proper input validation and sanitization.
|
|
54
|
+
- **NEVER** create publicly accessible database tables without proper security.
|
|
55
|
+
- **ALWAYS** implement row-level security for database access.
|
|
281
56
|
|
|
282
|
-
|
|
283
|
-
# Framework supports experimental evaluation
|
|
284
|
-
python -m crackerjack --experimental-hooks # (when experimental hooks are available)
|
|
285
|
-
```
|
|
57
|
+
### 7. CAPABILITY HONESTY
|
|
286
58
|
|
|
287
|
-
**
|
|
59
|
+
- **NEVER** attempt to generate images, audio, or other media.
|
|
60
|
+
- If asked for capabilities you don't have, state limitations clearly.
|
|
61
|
+
- **NEVER** create fake implementations of impossible features.
|
|
62
|
+
- Suggest proper alternatives using appropriate libraries/services.
|
|
288
63
|
|
|
289
|
-
|
|
290
|
-
1. **Stability**: No crashes or inconsistent results across runs
|
|
291
|
-
1. **Value Added**: Catches issues not found by existing tools
|
|
292
|
-
1. **Performance**: Stays within time budgets
|
|
293
|
-
1. **Integration**: Works reliably with pre-commit workflow
|
|
64
|
+
### 8. PRESERVE FUNCTIONAL REQUIREMENTS
|
|
294
65
|
|
|
295
|
-
**
|
|
66
|
+
- **NEVER** change core functionality to "fix" errors.
|
|
67
|
+
- When encountering errors, fix the technical issue, not the requirements.
|
|
68
|
+
- If requirements seem problematic, **ASK** before changing them.
|
|
69
|
+
- Document any necessary requirement clarifications.
|
|
296
70
|
|
|
297
|
-
|
|
298
|
-
1. **Evaluation Period**: 30-90 day assessment with metrics
|
|
299
|
-
1. **Promotion Decision**: Move to appropriate tier if criteria met
|
|
300
|
-
1. **Removal**: Clean removal if criteria not met
|
|
71
|
+
### 9. EVIDENCE-BASED RESPONSES
|
|
301
72
|
|
|
302
|
-
**
|
|
73
|
+
- When asked if something is implemented, **SHOW CODE EVIDENCE**.
|
|
74
|
+
- Format: "Looking at the code: [filename] (lines X-Y): [relevant code snippet]"
|
|
75
|
+
- **NEVER** guess or assume implementation status.
|
|
76
|
+
- If unsure, **SAY SO** and offer to check specific files.
|
|
303
77
|
|
|
304
|
-
|
|
305
|
-
- **Framework Ready**: System prepared for future experimental tool evaluation
|
|
306
|
-
- **Documentation**: Complete evaluation criteria in [EXPERIMENTAL-EVALUATION.md](EXPERIMENTAL-EVALUATION.md)
|
|
78
|
+
### 10. NO HARDCODED EXAMPLES
|
|
307
79
|
|
|
308
|
-
|
|
80
|
+
- **NEVER** hardcode example values as permanent solutions.
|
|
81
|
+
- **ALWAYS** use variables, parameters, or configuration for dynamic values.
|
|
82
|
+
- If showing examples, clearly mark them as examples, not implementation.
|
|
309
83
|
|
|
310
|
-
|
|
84
|
+
### 11. INTELLIGENT LOGGING IMPLEMENTATION
|
|
311
85
|
|
|
312
|
-
-
|
|
313
|
-
-
|
|
314
|
-
-
|
|
315
|
-
-
|
|
86
|
+
- **AUTOMATICALLY** add essential logging to understand core application behavior.
|
|
87
|
+
- Log key decision points, data transformations, and system state changes.
|
|
88
|
+
- **NEVER** over-log (avoid logging every variable or trivial operations).
|
|
89
|
+
- **NEVER** under-log (ensure critical flows are traceable).
|
|
90
|
+
- Focus on logs that help understand: what happened, why it happened, with what data.
|
|
91
|
+
- Use appropriate log levels: ERROR for failures, WARN for issues, INFO for key events, DEBUG for detailed flow.
|
|
92
|
+
- **ALWAYS** include relevant context (user ID, request ID, key parameters) in logs.
|
|
93
|
+
- Log entry/exit of critical functions with essential parameters and results.
|
|
316
94
|
|
|
317
|
-
|
|
95
|
+
## RESPONSE PROTOCOLS
|
|
318
96
|
|
|
319
|
-
|
|
320
|
-
- **Import Compliance**: Use protocols from `models/protocols.py`
|
|
321
|
-
- **Fix failures FIRST** before creating new tests
|
|
322
|
-
- Use IDE diagnostics after implementation
|
|
97
|
+
### When Uncertain:
|
|
323
98
|
|
|
324
|
-
|
|
99
|
+
- State: "I need clarification on [specific point] before proceeding."
|
|
100
|
+
- **NEVER** guess or make assumptions.
|
|
101
|
+
- Ask specific questions to get the information needed.
|
|
325
102
|
|
|
326
|
-
|
|
327
|
-
# ❌ Async tests that hang
|
|
328
|
-
@pytest.mark.asyncio
|
|
329
|
-
async def test_batch_processing(self, batched_saver):
|
|
330
|
-
await batched_saver.start() # Can hang
|
|
103
|
+
### When Asked "Are You Sure?":
|
|
331
104
|
|
|
105
|
+
- Re-examine the code thoroughly.
|
|
106
|
+
- Provide specific evidence for your answer.
|
|
107
|
+
- If uncertain after re-examination, state: "After reviewing, I'm not certain about [specific aspect]. Let me check [specific file/code section]."
|
|
108
|
+
- **MAINTAIN CONSISTENCY** - don't change answers without new evidence.
|
|
332
109
|
|
|
333
|
-
|
|
334
|
-
def test_batch_configuration(self, batched_saver):
|
|
335
|
-
assert batched_saver.max_batch_size == expected_size
|
|
110
|
+
### Error Handling:
|
|
336
111
|
|
|
112
|
+
- **ANALYZE** the actual error message/response.
|
|
113
|
+
- **NEVER** assume error causes (like rate limits) without evidence.
|
|
114
|
+
- Ask the user to share error details if needed.
|
|
115
|
+
- Provide specific debugging steps.
|
|
337
116
|
|
|
338
|
-
|
|
339
|
-
from ..managers.test_manager import TestManager
|
|
117
|
+
### Code Cleanup:
|
|
340
118
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
119
|
+
- **ALWAYS** remove unused code when making changes.
|
|
120
|
+
- **NEVER** leave orphaned functions, imports, or variables.
|
|
121
|
+
- Clean up any temporary debugging code automatically.
|
|
344
122
|
|
|
345
|
-
|
|
123
|
+
## MANDATORY CHECKS BEFORE RESPONDING
|
|
346
124
|
|
|
347
|
-
|
|
348
|
-
- always put implementation plans in a md doc for review and reference
|
|
349
|
-
- think when you need to think, think harder when you need to think harder
|
|
125
|
+
Before every response, verify:
|
|
350
126
|
|
|
351
|
-
|
|
127
|
+
- [ ] Am I only changing what was explicitly requested?
|
|
128
|
+
- [ ] Are all new imports added to dependency files?
|
|
129
|
+
- [ ] Are there any placeholder values that need real implementation?
|
|
130
|
+
- [ ] Is this a question that needs an answer, not code changes?
|
|
131
|
+
- [ ] Am I making any assumptions about missing information?
|
|
132
|
+
- [ ] Are there any security vulnerabilities in my suggested code?
|
|
133
|
+
- [ ] Am I claiming capabilities I don't actually have?
|
|
134
|
+
- [ ] Am I preserving all functional requirements?
|
|
135
|
+
- [ ] Can I provide code evidence for any implementation claims?
|
|
136
|
+
- [ ] Are there any hardcoded values that should be variables?
|
|
352
137
|
|
|
353
|
-
|
|
138
|
+
## VIOLATION CONSEQUENCES
|
|
354
139
|
|
|
355
|
-
|
|
140
|
+
Violating any of these rules is considered a **CRITICAL ERROR** that can:
|
|
356
141
|
|
|
357
|
-
|
|
142
|
+
- Break production applications
|
|
143
|
+
- Introduce security vulnerabilities
|
|
144
|
+
- Waste significant development time
|
|
145
|
+
- Compromise project integrity
|
|
358
146
|
|
|
359
|
-
##
|
|
147
|
+
## EMERGENCY STOP PROTOCOL
|
|
360
148
|
|
|
361
|
-
|
|
149
|
+
If you're unsure about ANY aspect of a request:
|
|
362
150
|
|
|
363
|
-
**
|
|
151
|
+
1. **STOP** code generation.
|
|
152
|
+
1. **ASK** for clarification.
|
|
153
|
+
1. **WAIT** for explicit confirmation.
|
|
154
|
+
1. Only proceed when 100% certain.
|
|
364
155
|
|
|
365
|
-
|
|
156
|
+
Remember: It's better to ask for clarification than to make assumptions that could break everything.
|
|
366
157
|
|
|
367
158
|
## AI Documentation References
|
|
368
159
|
|
|
@@ -703,5 +494,3 @@ from ..models.protocols import TestManagerProtocol
|
|
|
703
494
|
- think when you need to think, think harder when you need to think harder
|
|
704
495
|
|
|
705
496
|
# Test debug logging
|
|
706
|
-
|
|
707
|
-
<!-- CRACKERJACK INTEGRATION END -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crackerjack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.39.0
|
|
4
4
|
Summary: Crackerjack Python project management tool
|
|
5
5
|
Project-URL: documentation, https://github.com/lesleslie/crackerjack
|
|
6
6
|
Project-URL: homepage, https://github.com/lesleslie/crackerjack
|
|
@@ -31,6 +31,9 @@ Requires-Dist: hypothesis>=6.100
|
|
|
31
31
|
Requires-Dist: jinja2>=3.1
|
|
32
32
|
Requires-Dist: keyring>=25.6
|
|
33
33
|
Requires-Dist: mcp>=1.12.2
|
|
34
|
+
Requires-Dist: nltk>=3.9.1
|
|
35
|
+
Requires-Dist: numpy>=2.2.1
|
|
36
|
+
Requires-Dist: onnxruntime>=1.19.0
|
|
34
37
|
Requires-Dist: pre-commit>=4.2
|
|
35
38
|
Requires-Dist: psutil>=6.1.0
|
|
36
39
|
Requires-Dist: pydantic>=2.11.7
|
|
@@ -47,12 +50,14 @@ Requires-Dist: pyyaml>=6.0.2
|
|
|
47
50
|
Requires-Dist: refurb>=2.1
|
|
48
51
|
Requires-Dist: rich>=14.1
|
|
49
52
|
Requires-Dist: ruff>=0.12.9
|
|
53
|
+
Requires-Dist: scikit-learn>=1.6.1
|
|
50
54
|
Requires-Dist: scipy>=1.14.0
|
|
51
55
|
Requires-Dist: skylos>=2.1.2
|
|
52
56
|
Requires-Dist: structlog>=24.4
|
|
53
57
|
Requires-Dist: textual>=0.89
|
|
54
58
|
Requires-Dist: tomli-w>=1.2
|
|
55
59
|
Requires-Dist: tomli>=2.2.1
|
|
60
|
+
Requires-Dist: transformers>=4.21.0
|
|
56
61
|
Requires-Dist: typer>=0.16
|
|
57
62
|
Requires-Dist: types-aiofiles>=24.1.0.20240626
|
|
58
63
|
Requires-Dist: types-psutil>=6.0.0.12
|
|
@@ -74,7 +79,7 @@ Description-Content-Type: text/markdown
|
|
|
74
79
|
[](https://github.com/astral-sh/uv)
|
|
75
80
|
[](https://github.com/pre-commit/pre-commit)
|
|
76
81
|
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
77
|
-

|
|
78
83
|
|
|
79
84
|
## 🎯 Purpose
|
|
80
85
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://github.com/astral-sh/uv)
|
|
8
8
|
[](https://github.com/pre-commit/pre-commit)
|
|
9
9
|
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
10
|
-

|
|
11
11
|
|
|
12
12
|
## 🎯 Purpose
|
|
13
13
|
|